我的导入不显示任何掉毛错误(flake8),但是在运行时会生成ModuleNotFoundError。
可以从__main__.py
或bar.py
启动应用程序。这两个模块都调用bar.py
。调用__main__
时,该应用程序似乎可以运行,但是运行bar
时出现以下错误:
Traceback (most recent call last):
File "a:/Git/repo/lib/data/bar.py", line 1, in <module>
from src.foo import classA
ModuleNotFoundError: No module named 'src'
目录结构
repo
└── lib
├── src
│ ├── __init__.py
│ ├── __main__.py
│ └── foo.py
├── data
│ ├── __init__.py
│ └── bar.py
└── __init__.py
主要
from foo import classA
foo
class classA:
def dostuff(x):
...
栏
from src.foo import classA
答案 0 :(得分:0)
如果尝试从模块导入,则需要确保为您提供与要导入的文件在结构中位置有关的上下文。
在bar.py
中,您需要注意data
与src
处于同一级别,因此在引用src:from ..src.foo import ClassA
之前,您必须上升一个级别。您问题中的from src.foo
等同于from .src.foo
,它将在foo
目录中搜索data
。