vscode 无法导入自己写的模块文件(.py)问题

问题主要是在 vscode中 python 的读入模块路径存在问题,下面先介绍下python的模块读入路径:

什么是PYTHONPATH?

PYTHONPATH是一个环境变量,用于指定Python解释器在导入模块时搜索模块的路径。当我们导入一个模块时,Python解释器首先会在系统默认的路径中搜索模块,然后再到PYTHONPATH中搜索。如果模块在这些路径中找不到,Python解释器将会抛出"ModuleNotFoundError"。

使用以下代码,查看系统所包含路径:

python 复制代码
import sys
for a_path in sys.path:
    print(a_path)

vscode中两个重要的配置文件

launch.jsonsettings.jsonlaunch.json是使用vscode运行调试程序的启动设置,包括设置环境变量,使用哪个解释器,debug类型以及程序入口等等。settings.json是vscode程序的设置选项,包括快捷键,插件设置等。

解决方案一

lauch.json(在项目目录隐藏文件夹.vscode下面)中,添加"env""envFile"两个条目:

python 复制代码
"env": {"PYTHONPATH":"${workspaceRoot}"},
"envFile": "${workspaceRoot}/.env",

以上操作可以自动将项目根目录(即项目所在的文件夹的路径,在vscode 里面打开的最外面文件夹目录)添加到PYTHONPATH中,但还是无法访问根目录下子目录里面的模块文件,需要下一步操作:

在项目的根目录(与.vscode 文件同级目录下)新建文件.env,在.env文件中添加要包涵自定义库的路径即可:

python 复制代码
PYTHONPATH=./my_module 

可以导入多个模块 windows系统 加 ; 分隔符,linux 是:分隔符(注意两个路径之间不要有多余的空格)

以上操作可以使得 按F5 或者 ctrl F5 运行程序没有问题, 但是使用右上角Run Python File 还是会报错,所以就尽量使用快捷键,方便有不会出错

解决方案二

首先通过修改操作系统的环境变量来永久添加目录到PYTHONPATH

  1. 打开系统的环境变量设置,进入"高级系统设置"面板。
  2. 在"高级"选项卡下,点击"环境变量"按钮,打开环境变量设置对话框。
  3. 在"系统变量"列表中找到名为"PYTHONPATH"的变量,如果不存在,则点击"新建"按钮创建一个新的变量,并命名为"PYTHONPATH"。
  4. 编辑这个变量的值,将目标目录的路径添加到变量值的末尾,用分号分隔。
  5. 点击"确定"按钮保存设置。

然后修改vscode 里面的settings.json文件:

ctrl , 打开设置,在工作台 - 外观 里面,编辑settings.json,添加如下代码:

python 复制代码
"terminal.integrated.env.windows": {"PYTHONPATH":"${workspaceFolder};${env:PYTHONPATH}"}

以上操作,需要重启vscode 生效,

该方法 无论使用快捷键F5 ctrl F5,还是使用右上角快捷方式,都可以正常运行。

综上推荐方案一,只是运行是使用快捷键即可。

参考:

1、windows下VScode修改PYTHONPATH变量方便导入模块_vscode怎么添加环境变量path_那时间总是跑得很潇洒的博客-CSDN博客

2、在 VS Code 中设置多个 PYTHONPATH - 个人文章 - SegmentFault 思否

3、彻底解决VScode中采用python import自定义模块显示unresolved import 问题 和 无法跳转到自定义模块函数定义_fdd096030079的博客-CSDN博客

4、python包导入问题:vscode配置PYTHONPATH环境变量_vscode pythonpath_?-ldl的博客-CSDN博客

相关推荐
Lv11770082 分钟前
Visual Studio 中的密封类和静态类
ide·笔记·c#·visual studio
JobDocLS7 分钟前
VScode使用方法
ide·vscode·编辑器
洵有兮22 分钟前
python第四次作业
开发语言·python
kkoral23 分钟前
单机docker部署的redis sentinel,使用python调用redis,报错
redis·python·docker·sentinel
BoBoZz1937 分钟前
IterativeClosestPoints icp配准矩阵
python·vtk·图形渲染·图形处理
hoppss43 分钟前
vscode config
vscode
test管家1 小时前
PyTorch动态图编程与自定义网络层实战教程
python
laocooon5238578861 小时前
python 收发信的功能。
开发语言·python
清水白石0081 小时前
《Python 责任链模式实战指南:从设计思想到工程落地》
开发语言·python·责任链模式
沛沛老爹1 小时前
Web开发者快速上手AI Agent:基于LangChain的提示词应用优化实战
人工智能·python·langchain·提示词·rag·web转型