返回顶部
首页 > 资讯 > 后端开发 > Python >解决vscode找不到Python自定义模块,报错No module named ‘xxx‘
  • 195
分享到

解决vscode找不到Python自定义模块,报错No module named ‘xxx‘

idepythonvscodePoweredby金山文档 2023-09-05 14:09:02 195人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

笔者最近在学习python过程中,把在PyCharm运行成功的项目放在vscode中,发现一些报错,比如找不到笔者自定义的模块,参考了一些说法与办法,现将解决方法记录于此。 前言 vscode之所以找不到自定义模块,与其Py

笔者最近在学习python过程中,把在PyCharm运行成功的项目放在vscode中,发现一些报错,比如找不到笔者自定义的模块,参考了一些说法与办法,现将解决方法记录于此。

前言

vscode之所以找不到自定义模块,与其PythonPATH有关。笔者的目录结构如图所示:

经过实践,发现如果do_Mysql.py与testDatas同级,则上述语句可以引入成功,如果do_mysql.py引入同级do_excel.py:import do_excel,也是可以成功的。

但是导入模块:from testDatas import filePath,报错No module named 'testDatas'

目标:在do_mysql.py中引用filePath.py()

既然引用报错,说明从当前文件结构中找不到testDatas,我们可以导入sys,输出sys.path,查看当前的路径有哪些:

可见这些路径中与笔者项目有关的只有第一个,且为do_mysql.py的目录,所以找不到testDatas。因此,要想引入filePath.py,需要先找到testDatas,所以有以下两种方法:

解决方法

方法一

绝对路径的方式将路径追加到sys.path(“D:\pro\interfaceTest”是笔者的项目路径):

import syssys.path.append("D:\pro\interfaceTest")

相对路径的方式将路径追加到sys.path:

import osimport syssys.path.append(os.path.join(os.path.dirname(__file__), '../testDatas'))

在当前项目的.vscode(是一个隐藏目录)下的setting.JSON(如果没有该文件,可自行新增)中添加:

{    "python.analysis.extraPaths": ["./testDatas"]}

点击右上角的运行按钮,生效啦!

方法二

方法一虽然可以生效,但是每个文件都要来这么一下,着实烦人,我们可以配置一下模块的路径,方便下一次引入。

首先在.vscode下的launch.json中添加"env": {"PYTHONPATH": "${workspaceRoot}"}:

{  "version": "0.2.0",  "configurations": [    {      // 省略其他      "env": {"PYTHONPATH": "${workspaceRoot}"}    }  ]}

在.vscode下的settings.json中添加:

{  // 省略其他  "terminal.integrated.env.windows": {    "PYTHONPATH": "${workspaceFolder};${env:PYTHONPATH}"  }}

保存上述文件,在do_mysql.py中F5一下,发现生效啦!!!但是点击右上角的运行按钮,仍然报错No module named 'testDatas',没关系,只需要重启一下vscode,再次运行,就可以成功啦!

再次验证

此时我们可以输出sys.path看一下:

发现已经将interfaceTest目录加载进来了!

来源地址:https://blog.csdn.net/sxww_zyt/article/details/129487582

--结束END--

本文标题: 解决vscode找不到Python自定义模块,报错No module named ‘xxx‘

本文链接: https://lsjlt.com/news/395452.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作