Vscode 中 python模块的导入问题

 更新时间:2026年04月06日 08:00:11   作者:JoGyro  
文章介绍了在VSCode中使用Python开发时,遇到模块导入错误的问题及原因,并提供了通过配置PYTHONPATH解决的方法,通过修改用户配置或项目配置文件,将项目根目录添加到PYTHONPATH中,可以使Python解释器正确找到项目中的模块,感兴趣的朋友跟随小编一起看看吧

VSCode配置PYTHONPATH解决Python模块导入问题

问题描述

在使用VSCode开发Python项目时,经常会遇到模块导入错误的问题。当项目结构较为复杂,包含多个层级的目录时,Python解释器可能无法正确找到自定义模块,导致ModuleNotFoundErrorImportError

问题原因

Python解释器在导入模块时,会按照以下顺序搜索模块:

  1. 当前脚本所在目录
  2. PYTHONPATH环境变量中指定的目录
  3. 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"
  }
}

到此这篇关于Vscode 中 python模块的导入问题的文章就介绍到这了,更多相关vscode python模块导入内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python pandas DataFrame操作的实现代码

    Python pandas DataFrame操作的实现代码

    这篇文章主要介绍了Python pandas DataFrame操作的实现代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-06-06
  • Python osgeo库安装失败问题的解决方案

    Python osgeo库安装失败问题的解决方案

    Osgeo是一个支持开源地理空间数据处理的基金会,我们可以在python中使用“osgeo”库来访问其提供的高效地理空间数据,在PyCharm安装osgeo库的时候,显示报错,所以本文记录一下解决这个麻烦的步骤,需要的朋友可以参考下
    2025-04-04
  • Python3列表List入门知识附实例

    Python3列表List入门知识附实例

    序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推
    2020-02-02
  • fastapi框架异步执行踩坑记录

    fastapi框架异步执行踩坑记录

    这篇文章主要介绍了fastapi框架异步执行踩坑记录,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • flask项目集成swagger的方法

    flask项目集成swagger的方法

    这篇文章主要介绍了flask项目集成swagger的方法,帮助大家更好的理解和使用flask框架,感兴趣的朋友可以了解下
    2020-12-12
  • 详解python3 + Scrapy爬虫学习之创建项目

    详解python3 + Scrapy爬虫学习之创建项目

    这篇文章主要介绍了python3 Scrapy爬虫创建项目,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • python numpy中的polyfit函数用法

    python numpy中的polyfit函数用法

    这篇文章主要介绍了python numpy中的polyfit函数用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • python如何每天在指定时间段运行程序及关闭程序

    python如何每天在指定时间段运行程序及关闭程序

    这篇文章主要介绍了python如何每天在指定时间段运行程序及关闭程序问题,具有很好的参考价值,希望对大家有所帮助。
    2023-04-04
  • Python关键字及可变参数*args,**kw原理解析

    Python关键字及可变参数*args,**kw原理解析

    这篇文章主要介绍了Python关键字及可变参数*args,**kw原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • 使用python实现数据筛查

    使用python实现数据筛查

    一般数据筛查可以通过Python中的pandas库来实现,下面小编就来为大家介绍一下Python如何利用pandas实现数据筛查,感兴趣的小伙伴可以一起学习一下
    2023-10-10

最新评论