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

如何让VS Code像PyCharm/Spyder一样自动将项目根目录加入sys.path?

问题:VS Code中Python项目非根目录文件无法使用绝对导入

问题重现

项目结构:

-  my_project
  -  my_package
    - __init__.py
    - my_module.py
  - my_scripts
    - some_script.py

some_script.py尝试绝对导入:

from my_package.my_module import hello_world
hello_world()

PyCharm运行正常(自动将项目根目录加入sys.path),但VS Code运行时会抛出ModuleNotFoundError——原因是VS Code默认仅将脚本所在目录加入sys.path,未包含项目根目录。

全局配置解决方案

要让VS Code像PyCharm一样,打开任意项目后自动将根目录加入sys.path,只需配置用户级全局设置,一次设置永久生效:

  1. 打开用户设置JSON:
    • 按下Ctrl + ,(Windows/Linux)或Cmd + ,(Mac)打开设置界面,点击右上角的「打开设置(JSON)」图标
  2. 添加以下配置到settings.json:
    "python.runOptions": {
        "env": {
            "PYTHONPATH": "${workspaceFolder}"
        }
    },
    "python.analysis.extraPaths": ["${workspaceFolder}"],
    "python.autoComplete.extraPaths": ["${workspaceFolder}"]
    
  3. 保存配置并重启VS Code,之后打开任何Python项目运行脚本时,项目根目录都会自动加入sys.path,绝对导入可正常工作。

配置解释

  • python.runOptions.env.PYTHONPATH:通过环境变量告知Python将项目根目录(${workspaceFolder})加入模块搜索路径,Python启动时会自动读取该变量并添加到sys.path
  • python.analysis.extraPaths/python.autoComplete.extraPaths:让VS Code的代码分析、自动补全功能识别项目根目录下的包,避免编辑器出现虚假的导入报错

补充提示

  • 该配置对VS Code内所有运行方式生效:包括顶部栏「运行」按钮、右键「运行Python文件」、内置终端直接运行脚本
  • 无需为每个项目重复设置launch.json、执行pip install -e或修改代码,彻底解决临时方案的痛点

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 05:55:16