Python:导入子模块

时间:2017-07-20 07:50:46

标签: python python-3.x

我正在尝试使用以下结构设置一个新的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?

1 个答案:

答案 0 :(得分:1)

项目目录中没有__init__.py,因此project无法识别为包。 src目录也是如此。

此外,您正在从app1目录运行,因此在pythonpath中看不到它上面的目录。

将目录更改为~/project/src,将utils目录移至app1,运行./app1/main.pyimport 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