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

Python项目无法使用绝对路径导入模块问题求助

解决Python绝对导入ModuleNotFoundError的问题

咱先搞清楚为啥你用from test.b import *会报错:当你直接运行a.py的时候,Python会把**当前脚本所在的目录(也就是test目录)**添加到sys.path里,而不是test的父目录。这时候Python找不到名为test的包——因为它不在搜索路径里呀!

下面给你几个靠谱的解决方案,按推荐程度排序:

1. 从项目根目录用-m参数运行脚本(最推荐)

假设你的项目结构是这样的:

your_project/
└── test/
    ├── __init__.py
    ├── a.py
    └── b.py

你需要先进入your_project目录,然后执行:

python -m test.a

这个命令会让Python把your_project目录加入到sys.path,这样test就会被识别成一个合法的包,你的绝对导入语句from test.b import *就能正常工作了。这也是Python官方推荐的包运行方式,完全符合模块化的最佳实践。

2. 手动添加项目根目录到sys.path(应急用,不推荐长期用)

如果暂时没法从根目录运行,可以在a.py的最顶部加上这段代码:

import sys
import os
# 获取当前脚本的绝对路径,再往上跳一级(找到test的父目录)
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

# 现在再执行绝对导入就没问题了
from test.b import *

不过这种方法有点“硬编码”的味道,移植性差——如果项目目录结构变了,这段代码可能就失效了,所以只适合临时应急。

3. 设置PYTHONPATH环境变量

你可以通过设置环境变量PYTHONPATH,把项目根目录添加到Python的搜索路径里:

Linux/macOS终端

export PYTHONPATH=/path/to/your_project
python test/a.py

Windows命令提示符(cmd)

set PYTHONPATH=C:\path\to\your_project
python test\a.py

Windows PowerShell

$env:PYTHONPATH = "C:\path\to\your_project"
python test\a.py

设置完之后,Python会自动把PYTHONPATH里的目录加入sys.path,同样能识别test包。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:39:22