Python路径配置报错:VS Code Code Runner运行正常终端报ModuleNotFoundError
问题原因
- 核心差异是两种运行方式的当前工作目录不同,你代码中用的相对路径拼接逻辑依赖工作目录,因此出现不一致的结果:
- VS Code的Code Runner插件运行时,会自动切换工作目录到当前脚本所在的文件夹,
os.path.join('..', '1')可以正确定位到存放not_string.py的目标目录,因此导入正常。 - 终端手动运行时,你当前的工作目录不是脚本所在的文件夹,拼接出来的相对路径指向错误位置,Python搜索路径中没有包含
not_string.py所在的目录,就会抛出模块找不到的报错。
- VS Code的Code Runner插件运行时,会自动切换工作目录到当前脚本所在的文件夹,
解决方法
方案1:切换工作目录后运行
执行脚本前,先在终端执行cd 脚本所在文件夹的绝对路径,再运行测试脚本即可。
方案2:修改路径逻辑,不依赖工作目录(最推荐)
把原代码中添加搜索路径的行替换为以下内容,基于当前脚本的固定位置计算目标目录:
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '1')))
其中os.path.dirname(__file__)会自动获取当前脚本所在文件夹的绝对路径,不管你在哪个目录下执行脚本,都能正确拼接出目标目录的路径。
方案3:临时指定Python搜索路径运行
Linux/macOS终端执行:
PYTHONPATH=目标1文件夹的绝对路径 python 测试脚本文件名.py
Windows PowerShell执行:
$env:PYTHONPATH="目标1文件夹的绝对路径"; python 测试脚本文件名.py
内容的提问来源于stack exchange,提问作者ali ardakani
相关产品推荐
相关产品推荐

