从不同目录导入文件

时间:2020-06-22 06:03:51

标签: python module package

我的文件夹结构如下:

project1/app1/app1.py
project1/app2/app2.py

我想将app1.py导入到app2.py 我试过了:

sys.path.insert(0, 'project1/app1')
from app1 import a1

它工作正常,但我不想对路径进行硬编码。简而言之,我不想使用sys导入路径。 我想要这样的东西:

from app1.app1 import a1

请给我一些建议。预先感谢。

1 个答案:

答案 0 :(得分:0)

prj/
├── project1/
│   ├── __init__.py
│   └── app1/
│       └── app1.py
│
└── project2/
    ├── __init__.py
    └── app2/
        └── app2.py

这使project1和project2文件夹成为软件包

app1.py
greet = "Hello"

app2.py
from ...prj1.app1.app1 import *
print(greet)

Output
D:\code>>python -m prj.prj2.app2.app2
HI

由于这些都是软件包,需要加载,因此应使用-m标志从prj文件夹级别运行