ModuleNotFoundError:没有名为“main”的模块,但路径似乎正确

mca*_*ado 5 python apache-beam

的结构my_dir

??? README.md
??? main
?   ??? functions
?   ?   ??? __pycache__
?   ?   ??? my_function.py
?   ??? pipeline.py
?   ??? options
?   ?   ??? pipeline_options.py
?   ??? transforms
?       ??? __pycache__
?       ??? my_transform.py
??? poetry.lock
??? pyproject.toml
??? tests
Run Code Online (Sandbox Code Playgroud)

pipeline.py

from main.functions.my_function import MyFunction
Run Code Online (Sandbox Code Playgroud)

my_function.py

import apache_beam as beam

class MyFunction(beam.DoFn):
...
Run Code Online (Sandbox Code Playgroud)

我已经读到这里类似的问题,包括这一个这是解决我目前。另请阅读Python的进口。

当我跑步时pipeline.py,我得到

Traceback (most recent call last):
  File "pipeline.py", line 7, in <module>
    from main.functions.my_function import MyFunction
ModuleNotFoundError: No module named 'main'
Run Code Online (Sandbox Code Playgroud)

此外,我正在使用 VSCode,如果我通过“Python:在终端中运行 Python 文件”运行文件,我会返回错误。但是,如果我通过调试器运行,则所有路径都已找到并且不会引发错误,我发现这很奇怪。此外,VSCode 不会抛出任何路径警告。

我知道有类似的问题,但我一直无法弄清楚这里出了什么问题,并且已经在这方面花费了相当多的时间。非常感谢任何帮助/指针。

附加信息

  • 我正在使用 python 3.8.1
  • 利用poetry run python main/pipeline.py来运行代码
  • 从命令运行 my_dir