Python-从子文件夹执行绝对导入

Python - Doing absolute imports from a subfolder(Python-从子文件夹执行绝对导入)

本文介绍了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
  1. 您运行python main.py
  2. main.py执行:import app.package_a.module_a
  3. module_a.py是否import app.package_b.module_b

或者2或3可以使用:from app.package_a import module_a

只要您的PYTHONPATH中有app,即可使用。main.py当时可能在任何地方。

因此您编写setup.py以将整个应用程序包和子包复制(安装)到目标系统的python文件夹,并main.py复制(安装)到目标系统的脚本文件夹。

这篇关于Python-从子文件夹执行绝对导入的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:Python-从子文件夹执行绝对导入