Python 从另一个模块内部导入一个模块
基本上,我已经为我的Python程序编写了两个模块。我需要一个模块来导入另一个模块 下面是我的文件结构示例Python 从另一个模块内部导入一个模块,python,module,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,这可能吗?是的。如果您的PYTHONPATH环境变量
test_app
main.py
module_1
__init__.py
main.py
module_2
__init__.py
main.py
Main.py
可以导入这两个模块中的任何一个,但是我需要module_1
来导入module_2
,这可能吗?是的。如果您的PYTHONPATH
环境变量设置为test\u app
,您应该能够从module2
导入module1
,反之亦然
我假设您的程序是这样运行的:
python test_app/main.py
并且程序导入
module1.main
,这反过来又导入module2.main
。在这种情况下,不需要更改PYTHONPATH
的值,因为Python已经向其添加了test\u app目录。请参阅Python文档中的部分。如果您是从test\u app/main.py
启动程序的,您可以在test\u app/module\u 2/main.py
文件中使用from module\u 1 import main
在您的模块_1模块中。在任何文件中:
from module_2 import your_function, your_class
python官方文档在名为包内参考的部分中回答了这个问题 子模块通常需要相互引用。 您不需要关心PYTHONPATH,相对路径的声明就可以了。 对于你的情况 只需在module_1/main.py中键入“import..module2”如果您添加一个(空的)
\uuuu init\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。这意味着python将更智能地搜索模块/包
完成后,在模块1中,您现在可以编写import test\u app.module2
(或import..module2
)并正常工作
(此答案由此处的其他注释和答案组合而成,因此CW)无需设置PYTHONPATH
:“import
语句首先查找包含的包,然后再查找标准模块搜索路径”()。但在这种情况下,没有包含的包,由于test_应用程序不包含\uuuuu init\uuuuuu.py
。任何不包含的原因__直接在测试应用程序下初始化.py?包导入帮助。子包工作得更好。。参见我的答案。在Python术语中,module_1
和module_2
是包,而不是模块main
、module_1.main
和module_2.main
是您的模块。