最小示例的问题 Python 模块导入
Trouble with minimal example Python Module Imports
我做了一个最小的示例项目来尝试解决我的模块导入问题。结构如下:
MyProject/
├── main.py
└── utils/
├── __init__.py
├── foo.py
└── bar.py
main.py 仅包含此代码:from utils import foo
__init__.py不包含任何代码
foo.py 仅包含此代码:from bar import Bar
bar.py 仅包含此代码:class Bar: pass
如果我运行python utils/bar.py
,它运行无一例外。
同样,如果我运行python utils/foo.py
,它运行无一例外。
但是,如果我运行 python main.py
,它会导致以下异常:ModuleNotFoundError: No module named 'bar'
有什么办法可以解决这个问题吗?或者这甚至是一个问题,也许我正在做我不应该做的事情?
如果您想将其用作独立调用 (python utils/foo.py
) 和从主调用 (python main.py
),您可以同时使用两个导入:
try:
from .bar import Bar
except ImportError: # for python3
from bar import Bar
except ValueError: # for python2
from bar import Bar
我做了一个最小的示例项目来尝试解决我的模块导入问题。结构如下:
MyProject/
├── main.py
└── utils/
├── __init__.py
├── foo.py
└── bar.py
main.py 仅包含此代码:from utils import foo
__init__.py不包含任何代码
foo.py 仅包含此代码:from bar import Bar
bar.py 仅包含此代码:class Bar: pass
如果我运行python utils/bar.py
,它运行无一例外。
同样,如果我运行python utils/foo.py
,它运行无一例外。
但是,如果我运行 python main.py
,它会导致以下异常:ModuleNotFoundError: No module named 'bar'
有什么办法可以解决这个问题吗?或者这甚至是一个问题,也许我正在做我不应该做的事情?
如果您想将其用作独立调用 (python utils/foo.py
) 和从主调用 (python main.py
),您可以同时使用两个导入:
try:
from .bar import Bar
except ImportError: # for python3
from bar import Bar
except ValueError: # for python2
from bar import Bar