Python-从子文件夹执行绝对导入
问题描述
基本上我问的问题和这个人一样:How to do relative imports in Python?
但是没有人给他一个正确的答案。假设您在一个子文件夹中,并且您想要转到一个目录,然后再转到另一个子文件夹,那么按照他们的建议执行操作是不起作用的(正如OP在他对他们的答案的评论中指出的那样)。我知道您可以使用sys.Path来完成此操作,但我希望使用更干净的方法。
示例:
App
__init__.py
Package_A
--__init__.py
--Module_A.py
Package_B
--__init__.py
--Module_B.py
如何将模块_A导入模块_B?
解决方案
main.py
setup.py
app/ ->
__init__.py
package_a/ ->
__init__.py
module_a.py
package_b/ ->
__init__.py
module_b.py
- 您运行
python main.py
。 main.py
执行:import app.package_a.module_a
module_a.py
是否import app.package_b.module_b
或者2或3可以使用:from app.package_a import module_a
app
,即可使用。main.py
当时可能在任何地方。
因此您编写setup.py
以将整个应用程序包和子包复制(安装)到目标系统的python文件夹,并main.py
复制(安装)到目标系统的脚本文件夹。
相关文章