如何正确导入包
How to import package properly
我尝试拆分一些项目以便于管理。因此,我将不同应用程序使用的一些部分移动到模块中,而不是到处复制文件。
现在我的模块有以下结构(每个模块都有自己的文档和测试):
/projects
/module1
__init__.py
run_tests.py
/docs
...
/module1
__init__.py
module1.py
/tests
__init__.py
module1_test.py
/module2
...
现在我得到了 "main app" 以相同方式布置的目录:
/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 中只有一个 class 我不想要 hugh import module1.module1.module1.ModuleClass
所以应该将 ModuleClass
导入到 "module level" 这样我就可以做类似 import module1.ModuleClass
。我想我必须调整 __init__.py
文件,但我所做的一切都破坏了测试或整个导入。
任何帮助将不胜感激,对于我的糟糕解释我深表歉意我不是母语人士...
好的,我自己找到了解决方案。一如既往,它非常简单。
我只需要将所有 __init__.py
文件中的以下行递归添加到模块的顶部。
from .module1 import ModuleClass
如果有人可能遇到同样的情况,我会把它留在这里以供将来参考。
干杯
我尝试拆分一些项目以便于管理。因此,我将不同应用程序使用的一些部分移动到模块中,而不是到处复制文件。
现在我的模块有以下结构(每个模块都有自己的文档和测试):
/projects
/module1
__init__.py
run_tests.py
/docs
...
/module1
__init__.py
module1.py
/tests
__init__.py
module1_test.py
/module2
...
现在我得到了 "main app" 以相同方式布置的目录:
/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 中只有一个 class 我不想要 hugh import module1.module1.module1.ModuleClass
所以应该将 ModuleClass
导入到 "module level" 这样我就可以做类似 import module1.ModuleClass
。我想我必须调整 __init__.py
文件,但我所做的一切都破坏了测试或整个导入。
任何帮助将不胜感激,对于我的糟糕解释我深表歉意我不是母语人士...
好的,我自己找到了解决方案。一如既往,它非常简单。
我只需要将所有 __init__.py
文件中的以下行递归添加到模块的顶部。
from .module1 import ModuleClass
如果有人可能遇到同样的情况,我会把它留在这里以供将来参考。
干杯