目录结构
- lib- main.py- package1- subA.py- subB.py- package2- subC.py- subD.py
要在main文件中导入subA
# 方案1- main.py
from package1 import subA
# 方案2- main.py
from lib.package1 import subA
要在main文件中,通过subA导入subB
# 方案1- main.py
from package1 import subA- subA.py
# 需要通过修改路径信息的方法,将当前路径加入系统搜索路径
import sys
import os# print(f'修改前的{sys.path = }')
current_dir = os.path.dirname(os.path.abspath(__file__))
parent_dir = os.path.abspath(os.path.join(current_dir, os.pardir))
sys.path.append(parent_dir)
# print(f'修改后的{sys.path = }')form lib.package1 import subB# 方案2- main.py
from lib.package1 import subA- subA.py
form . import subB
要在main文件中导入subC
# 方案1- main.py
from package1 import subA- subA.py
# 需要通过修改路径信息的方法,将当前路径加入系统搜索路径
import sys
import os# print(f'修改前的{sys.path = }')
current_dir = os.path.dirname(os.path.abspath(__file__))
parent_dir = os.path.abspath(os.path.join(current_dir, os.pardir))
sys.path.append(parent_dir)
# print(f'修改后的{sys.path = }')form lib.package2 import subC# 方案2- main.py
from lib.package1 import subA- subA.py
form ..package2 import subC
两种方案比较
方案1
需要系统文件操作,较复杂。
通过系统操作获得的绝对路径,适用性更强,而且可以通过直接运行subA,实现导入subBsubC
方案2
在主程序的导包路径中添加根目录,操作简答。
采用相对路径,操作较简便,未验证使用性,而且无法通过直接运行subA,实现导入subBsubC