我正在尝试使用以下结构设置一个新的Python项目:
project:
src:
app1:
main.py
utils:
__init__.py
utils1:
__init__.py
utils1.py
tests:
我想在main中导入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?
答案 0 :(得分:1)
项目目录中没有__init__.py
,因此project
无法识别为包。 src目录也是如此。
此外,您正在从app1目录运行,因此在pythonpath中看不到它上面的目录。
将目录更改为~/project/src
,将utils
目录移至app1
,运行./app1/main.py
和import 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