我正在尝试建立一个具有以下结构的新 Python 项目:
project:
src:
app1:
main.py
utils:
__init__.py
utils1:
__init__.py
utils1.py
tests:
我想在 main.c 中导入 utils1。
我在 main.py 中尝试了以下操作,但它不起作用:
main.py
from project.src.utils.utils1 import utils1
这表明出现以下错误:
(virtualenv)user: /home/user/project/src/app1 $ python main.py
ImportError: No module named 'project'
如何在 main 中正确导入 utils1?
最佳答案
项目目录中没有__init__.py
,因此project
未被识别为包。 src 目录也是如此。
此外,您是从 app1 目录运行的,因此它上面的目录在 pythonpath 中不可见。
切换目录到~/project/src
,将utils
目录移动到app1
,运行./app1/main.py
和导入app1.utils.utils1.utils1
最后:
您的布局应如下所示:
project:
src:
app1:
main.py
utils:
__init__.py
utils1:
__init__.py
utils1.py
tests:
执行为:
(virtualenv)user: /home/user/project/src $ python ./app1/main.py
并导入为:
from app1.utils.utils1 import utils1
关于Python:导入子模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45208612/