如何在VSCode中标记目录为源代码根目录解决Python模块导入报错
报错原因
.env文件位置错误:你将.env放在了src目录下,但settings.json中配置的python.envFile读取路径为${workspaceFolder}/.env,这里的${workspaceFolder}指代你VSCode打开的项目根目录(即development文件夹),VSCode无法读取到存放在src子目录下的环境变量配置。PYTHONPATH配置错误:你写的PYTHONPATH=./src是相对路径,运行不同层级的脚本时会出现路径解析偏移,无法正确指向项目的src目录。- 配置未生效:修改VSCode相关配置后需要重启窗口才会加载新配置,未重启也会导致配置不生效。
修复方案
方法一:修正现有.env配置
- 将
src目录下的.env文件移动到development根目录下,和.vscode文件夹同级 - 修改
.env内容为:
PYTHONPATH=${workspaceFolder}/src
- 按下
Ctrl+Shift+P调出命令面板,输入Reload Window执行重启VSCode窗口,重新运行脚本即可正常导包。
方法二:修改运行调试配置(长期使用更稳定)
如果你需要长期在VSCode中调试运行该项目,直接配置运行参数更可靠:
- 按下F5调出运行面板,选择创建
launch.json文件,选择对应Python环境 - 在生成的配置中添加两个参数:
{ "name": "Python: 当前文件", "type": "python", "request": "launch", "program": "${file}", "console": "integratedTerminal", // 新增以下两行 "cwd": "${workspaceFolder}/src", "env": {"PYTHONPATH": "${workspaceFolder}/src"} }
该配置会固定运行时的工作目录为src,同时自动将src加入Python搜索路径,你代码中的文件读取也可以从open('../words.txt')简化为open('words.txt'),路径稳定性更高。
方法三:脚本内临时添加搜索路径(快速解决无需改配置)
如果不想修改全局配置,可以直接在extract.py的最开头添加以下代码,手动将src目录加入Python搜索路径:
import sys from pathlib import Path sys.path.append(str(Path(__file__).parent.parent.resolve()))
补充说明:你当前
settings.json中使用的python.pythonPath配置已被新版VSCode Python插件废弃,可替换为python.defaultInterpreterPath避免配置警告,该配置不影响本次导包问题的修复。
内容的提问来源于stack exchange,提问作者Maths12
相关产品推荐
相关产品推荐

