从另一个模块内部导入模块

时间:2011-06-17 09:54:37

标签: python module

基本上我已经为我的Python程序编写了两个模块。我需要一个模块来导入另一个模块。

以下是我的文件结构示例。

test_app 
    main.py
    module_1
        __init__.py
        main.py

    module_2
        __init__.py
        main.py

Main.py能够导入两个模块中的任何一个,但我需要module_1才能导入module_2,这可能吗?

5 个答案:

答案 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