当前位置: 首页 > news >正文

VSCode 设置源代码根目录

VSCode 设置源代码根目录

文章目录

  • VSCode 设置源代码根目录
    • 项目目录结构
    • 问题场景
    • Pycharm 解决方案
    • VSCode 解决方案
      • (方案一)修改项目配置文件【失败】
      • (方案二)修改项目启动配置文件【失败】
      • (方案三)修改项目环境配置文件【成功】
      • (方案四)修改项目配置文件【成功】【推荐】
    • 其他方案
    • 结论

项目目录结构

TEST_ROOT
├── .env
├── .vscode
│   └── launch.json
│   └── settings.json
├── folder_A
├── folder_B
│   ├── b1
│   │   ├── __init__.py
│   │   ├── utils.py
│   ├── b2
│   │   ├── __init__.py
│   │   ├── test.py

问题场景

以上目录在 VSCode 中,folder_Afolder_B 会被看作两个不同的工作区, VSCode 会默认将 TEST_ROOT 作为源代码根目录。此时,在 folder_B 中,b1b2 中的模块无法相互导入。如果在 b2 test.py 中引用 b1 utils.py 中的常量或函数,会报错 ModuleNotFoundError: No module named 'b1'

Pycharm 解决方案

众所周知,在 Pycharm 中,只需要在 folder_B 上右键,选择 Mark Directory as -> Sources Root 即可,非常方便。

VSCode 解决方案

但是在 VSCode 中,并没有如此快捷方便的操作,搜索资料后都提示需要手动修改配置文件。于是,尝试了以下解决方案,特此记录。

(方案一)修改项目配置文件【失败】

在根目录 TEST_ROOT.vscode/settings.json 文件中添加如下配置:

{"python.pythonPath": "python","python.autoComplete.extraPaths": ["${workspaceFolder}/folder_B"],"python.analysis.extraPaths": ["${workspaceFolder}/folder_B"],"python.analysis.autoSearchPaths": true
}

配置解释

  • "python.pythonPath":指定 Python 解释器的路径。
  • "python.autoComplete.extraPaths":指定自动补全时搜索的路径。
  • "python.analysis.extraPaths":指定静态分析时搜索的路径。
  • "python.analysis.autoSearchPaths":自动搜索路径。

(方案二)修改项目启动配置文件【失败】

在根目录 TEST_ROOT.vscode/launch.json 文件中添加如下配置:

{"version": "0.2.0","configurations": [{"name": "Python 调试程序: 当前文件","type": "debugpy","request": "launch","program": "${file}","console": "integratedTerminal","cwd": "${workspaceFolder}/folder_B" // 添加此行}]
}

配置解释

  • "cwd":指定工作区根目录。

(方案三)修改项目环境配置文件【成功】

在根目录 TEST_ROOT.env 文件中添加如下配置:

PYTHONPATH=/root/test_root/folder_B

添加后,重启 VSCode,问题解决。

配置解释

  • "PYTHONPATH":指定 Python 解释器的路径。(此处添加 folder_B绝对路径

注意,后续测试发现:

  • 使用 conda 的虚拟解释器,该方案没问题
  • 使用系统解释器(比如 /bin/python3 或者 /usr/bin/python3 ),仍然无法解决该问题

(方案四)修改项目配置文件【成功】【推荐】

在根目录 TEST_ROOT.vscode/settings.json 文件中添加如下配置:

{"terminal.integrated.env.linux": {"PYTHONPATH": "${workspaceFolder}/folder_B:${env:PYTHONPATH}"}
}

配置解释

  • "terminal.integrated.env.linux.PYTHONPATH":指定 Python 解释器的路径。

其他方案

在系统中直接修改 PYTHONPATH 环境变量,但这种方式并不推荐,因为

  1. VSCode 的 .env 文件优先级更高。
  2. 修改系统环境变量会影响其他项目。

结论

在 VSCode 中,修改 .env 文件是解决源代码根目录问题的最佳方案。
在 VSCode 中,修改 .vscode/settings.json 文件中 "terminal.integrated.env.linux.PYTHONPATH" (即(方案四)修改项目配置文件【成功】【推荐】)是解决源代码根目录问题的最佳方案。

http://www.xdnf.cn/news/139051.html

相关文章:

  • 量子威胁下的安全革命:后量子密码学技术路线与迁移挑战全解析
  • Ethan独立开发产品日报 | 2025-04-24
  • 第七讲 | list的使用及其模拟实现
  • TCP协议理解
  • 量子加密通信技术及其应用:构建无条件安全的通信网络
  • 【金仓数据库征文】金仓数据库:国产化浪潮下的技术突破与行业实践
  • 装备制造企业选型:什么样的项目管理系统最合适?
  • Oracle for Linux安装和配置(11)——Oracle安装和配置
  • nc工具!Netcat:TCP/IP瑞士军刀!全参数详细教程!Kali Linux教程!
  • 人工智能常见的数据处理方法
  • 4.1/Q2,Charls最新文章解读
  • springboot如何管理多数据源?
  • SOLID 原则在单片机环境下的 C 语言实现示例,结合嵌入式开发常见场景进行详细说明
  • MySQL8的安装方法
  • 每天学一个 Linux 命令(32):sort
  • Langchain入门介绍
  • Pandas读取Excel文件教程:从入门到精通
  • 内涵:python中的import
  • 国家社科基金项目申请书(课题论证活页)模版分享
  • MySQL索引优化、SQL分析与运行原理 - Java架构师面试实战
  • 项目笔记1:通用 Service的常见方法
  • 前端基础之《Vue(12)—插件封装》
  • Instagram广告账号被封禁停用该怎么办?
  • python——面向对象编程
  • HTMLCSS模板实现水滴动画效果
  • 通讯的基础概念:涵盖串行通信、并行通信、TCP、UDP、Socket 等关键概念和技术
  • VRRP与防火墙双机热备实验
  • HW蓝队开源网络流量分析工具 -- TrafficEye
  • 计组1.3——计算机的性能指标
  • Axure疑难杂症:详解设置选中与选中效果(玩转选中)