在vscode中调试,命令行出现错误信息ModuleNotFoundError: No module named ‘imp‘

本文主要是介绍在vscode中调试,命令行出现错误信息ModuleNotFoundError: No module named ‘imp‘,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在vscode中调试,命令行出现错误信息ModuleNotFoundError: No module named ‘imp’

报错原因

VSCode的python扩展会使用debugpy库实现调试功能。在涉及qt组件加载时,debugpyqt_loaders.py会尝试加载imp库。而在python3.12及以后的版本中,imp库被importlib取代,因此
import imp语句会报错ModuleNotFoundError

解决方法

出现问题代码位于qt_loaders.pyhas_binding函数定义中:
修改前:

def has_binding(api):
#中间省略import imptry:# importing top level PyQt4/PySide module is ok...mod = __import__(module_name)# ...importing submodules is notimp.find_module('QtCore', mod.__path__)imp.find_module('QtGui', mod.__path__)imp.find_module('QtSvg', mod.__path__)# we can also safely check PySide versionif api == QT_API_PYSIDE:return check_version(mod.__version__, '1.0.3')else:return Trueexcept ImportError:return False

对症下药,既然在新版python中imp库不再有效,为了兼容性,先尝试import imp语句,若无法导入imp包,则进入catch分支import importlib,修改代码如下:

def has_binding(api):
#中间省略try:import imp# importing top level PyQt4/PySide module is ok...mod = __import__(module_name)# ...importing submodules is notimp.find_module('QtCore', mod.__path__)imp.find_module('QtGui', mod.__path__)imp.find_module('QtSvg', mod.__path__)# we can also safely check PySide versionif api == QT_API_PYSIDE:return check_version(mod.__version__, '1.0.3')else:return Trueexcept ModuleNotFoundError:from importlib import machinery# importing top level PyQt4/PySide module is ok...mod = __import__(module_name)# ...importing submodules is notloader_details = (machinery.ExtensionFileLoader, machinery.EXTENSION_SUFFIXES)submod_finder = machinery.FileFinder(mod.__path__[0], loader_details)submod_check = (submod_finder.find_spec("QtCore") is not Noneand submod_finder.find_spec("QtGui") is not Noneand submod_finder.find_spec("QtSvg") is not None)# we can also safely check PySide versionif api == QT_API_PYSIDE:return check_version(mod.__version__, '1.0.3') and submod_checkelse:return submod_checkexcept ImportError:return False

可能有的同学会问,qt_loaders.py在哪里?——它的路径在报错信息中已经给出。例如:

C:\Users\XXX.vscode\extensions\ms-python.python-2024.2.1\pythonFiles\lib\python\debugpy_vendored\pydevd\pydev_ipython\qt_loaders.py", line 115, in has_binding
import imp
ModuleNotFoundError: No module named ‘imp’
Backend QtAgg is interactive backend. Turning interactive mode on.

这篇关于在vscode中调试,命令行出现错误信息ModuleNotFoundError: No module named ‘imp‘的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1066406

相关文章

nginx-rtmp-module模块实现视频点播的示例代码

《nginx-rtmp-module模块实现视频点播的示例代码》本文主要介绍了nginx-rtmp-module模块实现视频点播,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习... 目录预置条件Nginx点播基本配置点播远程文件指定多个播放位置参考预置条件配置点播服务器 192.

使用C/C++调用libcurl调试消息的方式

《使用C/C++调用libcurl调试消息的方式》在使用C/C++调用libcurl进行HTTP请求时,有时我们需要查看请求的/应答消息的内容(包括请求头和请求体)以方便调试,libcurl提供了多种... 目录1. libcurl 调试工具简介2. 输出请求消息使用 CURLOPT_VERBOSE使用 C

nginx-rtmp-module构建流媒体直播服务器实战指南

《nginx-rtmp-module构建流媒体直播服务器实战指南》本文主要介绍了nginx-rtmp-module构建流媒体直播服务器实战指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. RTMP协议介绍与应用RTMP协议的原理RTMP协议的应用RTMP与现代流媒体技术的关系2

使用DeepSeek API 结合VSCode提升开发效率

《使用DeepSeekAPI结合VSCode提升开发效率》:本文主要介绍DeepSeekAPI与VisualStudioCode(VSCode)结合使用,以提升软件开发效率,具有一定的参考价值... 目录引言准备工作安装必要的 VSCode 扩展配置 DeepSeek API1. 创建 API 请求文件2.

VScode连接远程Linux服务器环境配置图文教程

《VScode连接远程Linux服务器环境配置图文教程》:本文主要介绍如何安装和配置VSCode,包括安装步骤、环境配置(如汉化包、远程SSH连接)、语言包安装(如C/C++插件)等,文中给出了详... 目录一、安装vscode二、环境配置1.中文汉化包2.安装remote-ssh,用于远程连接2.1安装2

vscode保存代码时自动eslint格式化图文教程

《vscode保存代码时自动eslint格式化图文教程》:本文主要介绍vscode保存代码时自动eslint格式化的相关资料,包括打开设置文件并复制特定内容,文中通过代码介绍的非常详细,需要的朋友... 目录1、点击设置2、选择远程--->点击右上角打开设置3、会弹出settings.json文件,将以下内

redis-cli命令行工具的使用小结

《redis-cli命令行工具的使用小结》redis-cli是Redis的命令行客户端,支持多种参数用于连接、操作和管理Redis数据库,本文给大家介绍redis-cli命令行工具的使用小结,感兴趣的... 目录基本连接参数基本连接方式连接远程服务器带密码连接操作与格式参数-r参数重复执行命令-i参数指定命

C++中实现调试日志输出

《C++中实现调试日志输出》在C++编程中,调试日志对于定位问题和优化代码至关重要,本文将介绍几种常用的调试日志输出方法,并教你如何在日志中添加时间戳,希望对大家有所帮助... 目录1. 使用 #ifdef _DEBUG 宏2. 加入时间戳:精确到毫秒3.Windows 和 MFC 中的调试日志方法MFC

在 VSCode 中配置 C++ 开发环境的详细教程

《在VSCode中配置C++开发环境的详细教程》本文详细介绍了如何在VisualStudioCode(VSCode)中配置C++开发环境,包括安装必要的工具、配置编译器、设置调试环境等步骤,通... 目录如何在 VSCode 中配置 C++ 开发环境:详细教程1. 什么是 VSCode?2. 安装 VSCo