Vscode 中 python模块的导入问题

查看当前Python解释器的模块搜索路径

复制代码

|---|----------------------------|
| | import sys |
| | paths = sys.path |
| | # 遍历当前Python解释器的模块搜索路径列表 |
| | for path in paths: |
| | print(path) |

终端输出信息:

复制代码

|---|-------------------------------------------------------------------------------------------------------------------|
| | (base) PS E:\Projects\OCR-sdk> (D:\ProgramData\Anaconda3\shell\condabin\conda-hook.ps1) ; (conda activate base) |
| | (base) PS E:\Projects\OCR-sdk> & D:\ProgramData\Anaconda3\python.exe e:/Projects/OCR-sdk/tests/path.py |
| | e:\Projects\OCR-sdk\tests |
| | D:\ProgramData\Anaconda3\python313.zip |
| | D:\ProgramData\Anaconda3\DLLs |
| | D:\ProgramData\Anaconda3\Lib |
| | D:\ProgramData\Anaconda3 |
| | D:\ProgramData\Anaconda3\Lib\site-packages |
| | D:\ProgramData\Anaconda3\Lib\site-packages\win32 |
| | D:\ProgramData\Anaconda3\Lib\site-packages\win32\lib |
| | D:\ProgramData\Anaconda3\Lib\site-packages\Pythonwin |
| | (base) PS E:\Projects\OCR-sdk> |

路径仅包含当前python文件、系统环境变量和当前python环境目录,当前项目根目录不在Python的模块搜索路径中时,所以跨目录的模块导入会失败。

解决方法

通过配置VSCode的集成终端环境变量,将项目根目录添加到PYTHONPATH中,让Python解释器能够正确找到项目中的所有模块。

配置步骤

修改用户配置,通过ctrl+shift+p 打开用户配置文件:

也可以修改当前项目的工作区配置文件\.vscode\settings.json

在配置文件中添加如下配置:

复制代码

|---|----------------------------------------|
| | { |
| | "terminal.integrated.env.windows": { |
| | // 设置 PYTHONPATH 环境变量为当前工作区根目录 |
| | "PYTHONPATH": "${workspaceFolder}" |
| | } |
| | } |

配置说明

  • terminal.integrated.env.windows:针对Windows系统的集成终端环境变量配置
  • PYTHONPATH:Python解释器用于搜索模块的环境变量
  • ${workspaceFolder}:VSCode内置变量,表示当前工作区的根目录路径

其他平台配置

windows/Linux/macOS配置

复制代码

|---|----------------------------------------|
| | { |
| | "terminal.integrated.env.windows": { |
| | "PYTHONPATH": "${workspaceFolder}" |
| | }, |
| | "terminal.integrated.env.linux": { |
| | "PYTHONPATH": "${workspaceFolder}" |
| | }, |
| | "terminal.integrated.env.osx": { |
| | "PYTHONPATH": "${workspaceFolder}" |
| | } |
| | } |

验证配置是否生效

再次查看模块搜索路径

复制代码

|---|----------------------|
| | ```````python```` |
| | import sys |
| | paths = sys.path |
| | for path in paths: |
| | print |

为了防止修改后未立即生效,可以在新终端里再次测试或者直接重启Vscode

复制代码

|---|----------------------------------------------------------------------------------------------------------|
| | (base) PS E:\Projects\OCR-sdk> & D:\ProgramData\Anaconda3\python.exe e:/Projects/OCR-sdk/tests/path.py |
| | e:\Projects\OCR-sdk\tests |
| | E:\Projects\OCR-sdk |
| | D:\ProgramData\Anaconda3\python313.zip |
| | D:\ProgramData\Anaconda3\DLLs |
| | D:\ProgramData\Anaconda3\Lib |
| | D:\ProgramData\Anaconda3 |
| | D:\ProgramData\Anaconda3\Lib\site-packages |
| | D:\ProgramData\Anaconda3\Lib\site-packages\win32 |
| | D:\ProgramData\Anaconda3\Lib\site-packages\win32\lib |
| | D:\ProgramData\Anaconda3\Lib\site-packages\Pythonwin |

如果配置成功,那么项目根目录(例如:E:\Projects\OCR-sdk)应该出现在sys.path的输出中。

注意

  1. 重启终端:修改配置后需要重新打开集成终端才能生效
  2. 多项目支持 :每个项目可以有独立的.vscode/settings.json配置
  3. 路径分隔符 :在Windows中使用分号;分隔多个路径,在macOS/Linux中使用冒号:

扩展配置

如果需要添加多个路径到PYTHONPATH:

复制代码

|---|--------------------------------------------------------------------------------------|
| | { |
| | "terminal.integrated.env.windows": { |
| | "PYTHONPATH": "${workspaceFolder};${workspaceFolder}\\src;${workspaceFolder}\\lib" |
| | } |
| | } |

相关推荐
wusam18 小时前
基于HCL的python脚本编程(2)
网络·python·智能路由器
神仙别闹19 小时前
基于Python+MySQL实现(Web)个人博客系统
python·mysql·php
二十七日秋19 小时前
算法刷题笔记「Day 1|四道 OJ 入门题里的深坑」
c语言·汇编·数据结构·c++·笔记·python·算法
小咕聊编程19 小时前
基于Django的个人摄影博客网站设计与开发
后端·python·django
论文复现现场19 小时前
DeepSeek V4.1 Flash 和 V4 Pro 有什么区别?API 价格、性能与迁移建议
java·服务器·人工智能·python·大模型api·deepseek·deepseek v4.1
量化炼金 (CodeAlchemy)19 小时前
【量化研究】美股历史数据获取:Yahoo Finance 转 Zorro 回测格式
python·量化研究·量化交易
小嘉丶学长20 小时前
Day13 · 列表与元组
linux·运维·服务器·开发语言·python
小小张说故事20 小时前
Python 的 int 为什么不会溢出?拆开 PyLongObject 和它背后那串变长数组
python
2501_9159090620 小时前
Windows 上用 VS Code 调试 iPhone 真机 App,KXBuild 断点、崩溃定位实操
ide·windows·vscode·ios·iphone·个人开发·敏捷流程
威哥爱编程20 小时前
Python 智能体开发实战 03:聊十轮就“失忆”,账单还翻倍?管好上下文,Token 立省一半
python·agent