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

Python跨包导入求助:如何在pkg2/file2.py导入pkg1/file1.py

解决跨包导入问题

首先假设你的目录结构如下(典型的同根多包结构):

project_root/
├── pkg1/
│   ├── __init__.py
│   └── file1.py
└── pkg2/
    ├── __init__.py
    └── file2.py

下面是几种可行的解决方法:

方法1:手动添加项目根目录到Python路径

在file2.py开头加入以下代码,将项目根目录加入Python的搜索路径,这样就能找到pkg1:

import sys
from pathlib import Path

# 获取项目根目录(当前脚本的父目录的父目录)
root_path = Path(__file__).parent.parent
sys.path.append(str(root_path))

from pkg1 import file1

方法2:使用相对导入(需以包的形式运行)

如果把整个项目当作一个包来管理,可在file2.py中用相对导入:

from ..pkg1 import file1

注意:这种方式不能直接运行file2.py,必须回到项目根目录,用模块方式启动:

python -m pkg2.file2

方法3:设置PYTHONPATH环境变量

通过环境变量告诉Python项目根目录的位置:

  • Linux/macOS终端:
export PYTHONPATH="/path/to/your/project_root:$PYTHONPATH"
  • Windows命令行:
set PYTHONPATH=C:\path\to\your\project_root;%PYTHONPATH%

设置后直接运行file2.py,from pkg1 import file1就能正常工作。

内容的提问来源于stack exchange,提问作者Suganth

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 12:10:24