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

rye*_*guy 12 python python-import

基本上我问这个问题同样的问题:如何在Python中进行相对导入?

但没有人给他一个正确的答案.鉴于你在一个子文件夹中,你想要上一个目录,然后进入另一个子文件夹,做他们建议的不起作用(正如OP在他的评论中指出的那样).

我知道你可以通过使用sys.path来做到这一点,但我更喜欢一个更干净的方法.

例:

App
__init__.py
Package_A
--__init__.py
--Module_A.py
Package_B
--__init__.py
--Module_B.py
Run Code Online (Sandbox Code Playgroud)

如何将Module_A导入Module_B?

nos*_*klo 11

main.py
setup.py
app/ ->
    __init__.py
    package_a/ ->
       __init__.py
       module_a.py
    package_b/ ->
       __init__.py
       module_b.py
Run Code Online (Sandbox Code Playgroud)
  1. 你跑python main.py.
  2. main.py 作用: import app.package_a.module_a
  3. module_a.pyimport app.package_b.module_b

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

只要你有appPYTHONPATH ,那就行了.main.py可能在任何地方.

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