如何导入同级目录中的模块?(跨SiblingA、SiblingB目录场景)
加载同级目录模块的解决方案
文件结构
root/ ├── SiblingA/ │ └── A.py └── SiblingB/ └── B.py
下面是几种可行的实现方式:
方法1:临时添加根目录到Python路径
在A.py中通过修改sys.path,让Python能找到root目录下的同级模块:
import sys import os # 获取root目录的绝对路径 root_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # 将root目录加入Python搜索路径 sys.path.append(root_dir) # 导入SiblingB中的目标函数 from SiblingB.B import 你的函数名称
方法2:将项目转为可导入包
在root、SiblingA、SiblingB目录下都创建空的__init__.py文件,把整个项目变成Python包结构:
root/ ├── __init__.py ├── SiblingA/ │ ├── __init__.py │ └── A.py └── SiblingB/ ├── __init__.py └── B.py
然后在A.py中使用相对导入:
# 从同级包SiblingB导入模块 from ..SiblingB.B import 你的函数名称
运行注意:不能直接执行python SiblingA/A.py,需要在root目录下以模块方式运行:
python -m SiblingA.A
方法3:通过环境变量指定搜索路径
运行A.py前,将root目录添加到PYTHONPATH环境变量,让Python自动识别同级模块:
Linux/macOS终端:
export PYTHONPATH="/你的root目录绝对路径:$PYTHONPATH" python SiblingA/A.py
Windows命令提示符:
set PYTHONPATH=C:\你的root目录绝对路径;%PYTHONPATH% python SiblingA/A.py
此时A.py中可直接导入:
from SiblingB.B import 你的函数名称
内容的提问来源于stack exchange,提问作者Dan Lee
相关产品推荐
相关产品推荐

