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

这篇具有很好参考价值的文章主要介绍了vscode 无法导入自己写的模块文件(.py)问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

什么是PYTHONPATH?

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

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

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”两个条目:

"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

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

然后修改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博客文章来源地址https://www.toymoban.com/news/detail-627226.html

到了这里,关于vscode 无法导入自己写的模块文件(.py)问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • pycharm中运行py文件时,报错:找不到自己编写的包等目录问题ModuleNotFoundError: No module named ‘xxx‘

    【 问题描述 】:pycharm中运行py文件时,报错:找不到自己编写的包等目录问题 【 报错 】: ModuleNotFoundError: No module named ‘xxx’ ERROR: file not found 【 问题定位 】:运行的py文件和用到的包或者数据不在同一个文件目录下时,就会找不到这些数据的路径 【 解决办法 】: 1)修改

    2024年02月15日
    浏览(36)
  • [VScode]-连接服务器无法解析工作区文件夹问题的解决

    目录 【问题状况】 【解决方法】 【补充】 1.如何添加新的host IP地址 2.配置完成后通过ssh访问服务器出现Bad owner or permissions on 2.1解决方法1 2.2解决方法2 在使用VScode通过Samba服务器的时候,发现无法正常的打开,文件夹显示感叹号。  同时右下角会弹出提示 首先需要在扩展里

    2024年02月03日
    浏览(47)
  • 如何配置jsconfig.json文件解决VSCode中无法识别@别名引用的问题

    在现代web开发中,使用别名来引用模块已经成为了一个非常常见的做法。这样可以使得代码更加易读、易维护。然而,在使用VSCode进行开发时,如果不正确地配置jsconfig.json文件,就会遇到一些问题。 其中一个比较常见的问题是,在使用“@”符号来引用模块时,无法通过Ctr

    2023年04月10日
    浏览(32)
  • Mac 终端-z‘sh提示 Permission denied 权限问题(VSCode提示没有权限,无法保存文件问题)

    一个文件有3种权限,读、写、可执行,Permission denied就是没有可执行权限,所以需要加上可执行权限。 1. 进入终端先 cd到该文件的目录下 2. 执行命令 chmod a+x ./ 文件名 二:赋予文件夹权限 $ sudo chmod -R 777  目录路径 其中 -R 是指级联应用到目录里的所有子目录和文件 777 是所

    2024年02月03日
    浏览(63)
  • Vscode将.ui文件转成.py文件方法

    目录 一、 vscode 安装扩展库PYQT Integration 二、设置路径 三 、ui文件导入vscode;右键选择选择PyQT:Complite Form选项 ,自动生成Ui_layout_qiantao.py 四、可以打开designer.exe重新编辑             自动生成Ui_layout_qiantao.py  

    2024年02月13日
    浏览(26)
  • 使用vscode中编写c语言——无法打开 源 文件 “stdlib.h“C/C++(1696)问题

    出现这个问题原因如下: 1、没有下载编辑器或者是没有配置好该编辑器的环境变量。 可以通过如下方法检查是否安装并配置好编辑器:打开终端:按win+R cmd,然后输入gcc-v,查看是否有mingw64编辑器,如下图是已经配置好了 如果没有的话就说明没有安装或者没有配置好环境变

    2024年02月04日
    浏览(27)
  • ts解决依赖引入报错:无法找到模块“xxxxxx”的声明文件的报错问题

    依赖引入报错是因为 ts 没有识别当前引入的依赖,在 vite-env.d.ts 中声明该依赖即可解决,语法: declare module \\\"依赖名\\\"; 解决找不到模块“./App.vue”或其相应的类型声明。 解决router引入报错的问题 一些依赖报错问题的解决

    2024年02月11日
    浏览(34)
  • 我在VScode学Python(Python函数,Python模块导入)

    我的个人博客主页:如果’\\\'真能转义1️⃣说1️⃣的博客主页 (1)关于Python基本语法学习----可以参考我的这篇博客《我在VScode学Python》 (2)pip是必须的在我们学习python这门语言的过程中Python ---->> PiP 的重要性 本篇补充《我在VScode学Python》的内容 函数是一段可重用的代

    2024年02月16日
    浏览(35)
  • VScode运行python时pygame无法正常导入

    用vscode运行python代码,需要pygame包,但是pygame下面有波浪线,提示无法正常导入。 以下为导入方法。 https://www.pygame.org/download.shtml 我直接下载了箭头指示的这个包,解压到python目录里即可。3113和3810是下载的两个python版本,我将tar包解压到了python的大文件目录里。 /https://ww

    2024年02月05日
    浏览(33)
  • Python - Vscode显示无法调用相关库(无法解析导入x) Mac版

    适用情况: 确认已经安装了库,但是vscode中显示无法调用? 解决办法: 很可能是由于之前已经安装了anaconda,库已经安装在anaconda的编译器里,但是后来安装vscode又重新下载了新的编译器,因此选择正确的编译器编译即可。 输入pip install numpy 注意到已经显示 already satisfied ,

    2024年01月24日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包