【发布时间】:2019-03-31 19:24:20
【问题描述】:
我在导入自己的模块时遇到了一些小问题。
我的项目结构如下。
src/
|-- utils/
|----- __init__.py
|----- foo_a.py
|----- foo_b.py
|-- main.py
main.py
from utils import foo_b
foo_a.py
def func_a():
print ("Hello World")
foo_b.py
from foo_a import func_a
func_a()
如果我运行python foo_b.py,它会起作用。
但是当我运行python main.py 时,它会显示如下错误:"ModuleNotFoundError: No module named 'foo_a'"
我可以通过以下方式解决这个问题:
export PYTHONPATH = path_of_utils_folder
但这很烦人。 所以我想知道我构建项目的方式是否不正确还是因为我导入模块的方式?
谢谢。
【问题讨论】:
-
尝试
from .utils import foo_b作为相对导入 -
@coldspeed,这仍然会产生错误。但我在
foo_b.py中试过这个。from . import foo_a并且有效。所以,是的,问题解决了。谢谢 -
我认为问题出在
main.py,不过? -
@coldspeed 哦等等。虚惊。有了新的更改,它在我运行
python main.py时有效,但在python foo_b.py时无效。