基本上我已经为我的Python程序编写了两个模块。我需要一个模块来导入另一个模块。
以下是我的文件结构示例。
test_app
main.py
module_1
__init__.py
main.py
module_2
__init__.py
main.py
Main.py
能够导入两个模块中的任何一个,但我需要module_1
才能导入module_2
,这可能吗?
答案 0 :(得分:3)
如果您从test_app/main.py
启动了自己的计划,则可以在from module_1 import main
文件中使用test_app/module_2/main.py
。
答案 1 :(得分:2)
如果向test_app添加(空)__init__.py
,test_app将是一个包。这意味着python将更聪明地搜索模块/包。
完成此操作后,在module1中,您现在可以编写import test_app.module2
(或import .. module2
)并且它可以正常工作。
(这个答案与其他评论和答案相结合,因此CW)
答案 2 :(得分:1)
是。如果您的PYTHONPATH
环境变量设置为test_app
,则应该可以从module1
导入module2
,反之亦然。
我假设你运行这样的程序:
python test_app/main.py
并且程序会导入module1.main
,而module2.main
会导入PYTHONPATH
。在这种情况下,不需要更改{{1}}的值,因为Python已经将test_app目录添加到它。请参阅Python文档中的Module Search Path部分。
答案 3 :(得分:1)
官方python文档在 Intra-package References 一节中回答了这个问题。 python modules
子模块通常需要相互引用。 你不需要关心PYTHONPATH,相关路径的声明会做。 对于你的情况,
只需在module_1 / main.py
中输入“import .. module2”即可答案 4 :(得分:0)
在module_1模块中。在任何文件中:
from module_2 import your_function, your_class