如何正确导入包

时间:2016-06-27 11:48:05

标签: python python-3.x python-import

我有一些项目,我试图分开以便于管理。因此,我将不同应用程序使用的一些部分移动到模块中,而不是复制文件。

现在我的模块有以下结构(每个模块都有自己的文档和测试):

/projects
  /module1
    __init__.py
    run_tests.py
    /docs
      ...
    /module1
      __init__.py
      module1.py
    /tests
      __init__.py
      module1_test.py
  /module2
    ...

现在我得到了自己的主要应用程序"目录以同样的方式布局:

/projects
  run_app.py
  run_tests.py
  /docs
    ...
  /app
    __init__.py
    app.py
    module1 <-- Link to the module1 repository
  /tests
    __init__.py
    app_tests.py

目前我的所有__init__.py文件都是空的,我不知道如何在app.py文件中编写正确的导入语句。由于module1中只有一个类,所以我不想休import module1.module1.module1.ModuleClass因此ModuleClass应导入&#34;模块级&#34;所以我可以做一些像import module1.ModuleClass这样的事情。我想我必须调整__init__.py文件,但我试过的都破坏了测试或整个导入。

任何帮助都会非常感激和抱歉我的不良解释我不是母语人士......

1 个答案:

答案 0 :(得分:0)

好的,我自己找到了解决方案。一如既往,它非常直接。

我只需要将所有__init__.py文件中的以下行递归地添加到模块顶部。

from .module1 import ModuleClass

如果有人可能会在同样的情况下结束,我会留在这里以供将来参考。

干杯