You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何导入同级目录中的模块?(跨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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 01:30:28