python同级文件夹导包

在项目文件夹中新建__init__.py文件 (若使用pytcharm新建python package会自带__init__.py)
父亲节点中的python文件可调用子文件夹中的节点,如下图中f3可调用f2和f1,而兄弟节点文件夹中的文件不能相互调用f2和f1则不能相互调用.

1
2
3
4
5
6
7
8
├── a
│   ├── f1.py
│   ├── __init__.py
├── b
│   ├── f2.py
│   ├── __init__.py
├── f3.py
└── __init__.py

若在f2和f1最前面添加

1
2
3
4
5
6
import sys
import os
currentUrl = os.path.dirname(__file__)
parentUrl = os.path.abspath(os.path.join(currentUrl, os.pardir))
# print(parentUrl)
sys.path.append(parentUrl)

在f1中使用from b.f2 import *即可调用.
f1

1
2
3
4
5
6
7
8
9
10
import sys
import os
currentUrl = os.path.dirname(__file__)
parentUrl = os.path.abspath(os.path.join(currentUrl, os.pardir))
sys.path.append(parentUrl)
from b.f2 import *
def main():
print('f1')
if __name__ == '__main__':
main()

f2

1
2
3
4
5
6
7
8
9
import sys
import os
currentUrl = os.path.dirname(__file__)
parentUrl = os.path.abspath(os.path.join(currentUrl, os.pardir))
sys.path.append(parentUrl)
def main():
print('f2')
if __name__ == '__main__':
main()

f3

1
2
3
from a.f1 import *
from b.f2 import *
print('ceshi')

参考记录

------本文结束感谢阅读------