2016-06-27 45 views
0

我有一些项目尝试分解以便于管理。因此,我将一些由不同应用程序使用的部分移动到模块中,而不是复制文件。如何正确导入包装

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

/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中只有一个类,所以我不需要hugh import module1.module1.module1.ModuleClass,因此应该将ModuleClass导入到“模块级”,因此我可以执行类似于import module1.ModuleClass的操作。我想我必须调整__init__.py文件,但我所有的尝试都打破了测试或整个导入。

任何帮助将是非常赞赏和我那可怜的解释很抱歉我不是母语的人......

+0

您可以为每个子模块编写一个'setup.py'并将它们安装为依赖关系 – jonrsharpe

回答

0

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

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

from .module1 import ModuleClass 

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

干杯