赞
踩
问题主要是在 vscode中 python 的读入模块路径存在问题,下面先介绍下python的模块读入路径:
什么是PYTHONPATH?
PYTHONPATH是一个环境变量,用于指定Python解释器在导入模块时搜索模块的路径。当我们导入一个模块时,Python解释器首先会在系统默认的路径中搜索模块,然后再到PYTHONPATH中搜索。如果模块在这些路径中找不到,Python解释器将会抛出“ModuleNotFoundError”。
使用以下代码,查看系统所包含路径:
import sys
for a_path in sys.path:
print(a_path)
vscode中两个重要的配置文件
launch.json
和settings.json
。launch.json
是使用vscode运行调试程序的启动设置,包括设置环境变量,使用哪个解释器,debug类型以及程序入口等等。settings.json
是vscode程序的设置选项,包括快捷键,插件设置等。
解决方案一
在lauch.json
(在项目目录隐藏文件夹.vscode下面)中,添加"env"
跟“envFile”
两个条目:
"env": {"PYTHONPATH":"${workspaceRoot}"},
"envFile": "${workspaceRoot}/.env",
以上操作可以自动将项目根目录(即项目所在的文件夹的路径,在vscode 里面打开的最外面文件夹目录)添加到PYTHONPATH中,但还是无法访问根目录下子目录里面的模块文件,需要下一步操作:
在项目的根目录(与.vscode 文件同级目录下)新建文件.env
,在.env
文件中添加要包涵自定义库的路径即可:
PYTHONPATH=./my_module
可以导入多个模块 windows系统 加 ;
分隔符,linux 是:
分隔符(注意两个路径之间不要有多余的空格)
以上操作可以使得 按F5
或者 ctrl
F5
运行程序没有问题, 但是使用右上角Run Python File
还是会报错,所以就尽量使用快捷键,方便有不会出错
注意:
vscode默认使用项目文件夹根目录作为工作目录cwd
,这会使得子文件夹中的程序无法使用相对路径(既无法直接使用与程序所在同一目录下的文件),正确的解决办法是在launch.json
中配置cwd
为运行的文件所在目录:
"cwd": "${fileDirname}"
解决方案二
首先通过修改操作系统的环境变量来永久添加目录到PYTHONPATH
然后修改vscode 里面的settings.json
文件:
ctrl
,
打开设置,在工作台 - 外观 里面,编辑settings.json
,添加如下代码:
"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博客
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。