Python3.12兼容性问题-ImpImporter替换的解决办法

news2024/11/15 11:57:41

前言

     目前现有的很多Python代码都是基于Python3.8、或者Python3.9的甚至是更早的版本。

当我们用最新的Python3.12来跑这些程序的时候,就会出现很多兼容性的问题。

    本文就对“'ImpImporter'”和“'zipimporter'”的替换问题给出了一个解决方案。

1、错误描述

AttributeError: module 'pkgutil' has no attribute 'ImpImporter'. Did you mean: 'zipimporter'?

这个错误如何解决:

具体错误的描述

ERROR: Exception:

Traceback (most recent call last):

  File "D:\PycharmProjects\py312_t1\venv\Lib\site-packages\pip\_internal\cli\base_command.py", line 160, in exc_logging_wrapper

    status = run_func(*args)

             ^^^^^^^^^^^^^^^

  File "D:\PycharmProjects\py312_t1\venv\Lib\site-packages\pip\_internal\commands\list.py", line 169, in run

    packages: "_ProcessedDists" = [

                                  ^

  File "D:\PycharmProjects\py312_t1\venv\Lib\site-packages\pip\_internal\metadata\base.py", line 664, in <genexpr>

    return (d for d in it if d.canonical_name not in skip)

           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "D:\PycharmProjects\py312_t1\venv\Lib\site-packages\pip\_internal\metadata\base.py", line 612, in iter_all_distributions

    for dist in self._iter_distributions():

  File "D:\PycharmProjects\py312_t1\venv\Lib\site-packages\pip\_internal\metadata\importlib\_envs.py", line 176, in _iter_distributions

    for dist in finder.find_eggs(location):

  File "D:\PycharmProjects\py312_t1\venv\Lib\site-packages\pip\_internal\metadata\importlib\_envs.py", line 146, in find_eggs

    yield from self._find_eggs_in_zip(location)

  File "D:\PycharmProjects\py312_t1\venv\Lib\site-packages\pip\_internal\metadata\importlib\_envs.py", line 123, in _find_eggs_in_zip

    from pip._vendor.pkg_resources import find_eggs_in_zip

  File "D:\PycharmProjects\py312_t1\venv\Lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 2164, in <module>

    register_finder(pkgutil.ImpImporter, find_on_path)

                    ^^^^^^^^^^^^^^^^^^^

AttributeError: module 'pkgutil' has no attribute 'ImpImporter'. Did you mean: 'zipimporter'?

2、错误的产生

当Pycharm打开新建Python3.12.4的工程的时候,

比如,我想导入一个opencv包

pip install opencv-python  -i https://pypi.tuna.tsinghua.edu.cn/simple

发现产生一堆的错误,如下:

即使,使用pip list 也是同样的错误。

想要升级pip:pip install --upgrade pip

也是同样的错误。

咋办?

3、解决的办法

找到文件:

将这行改掉:

改为:

register_finder(zipimport.zipimporter, find_on_path)

如下图:

这一处也改掉,如下图:

是不是,很大胆直接和暴力。

改完以后,发现pip install 就能用了,如下图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2110071.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JVM系列(七) -对象的内存分配流程

一、摘要 在之前的文章中,我们介绍了类加载的过程、JVM 内存布局和对象的创建过程相关的知识。 本篇综合之前的知识,重点介绍一下对象的内存分配流程。 二、对象的内存分配原则 在之前的 JVM 内存结构布局的文章中,我们介绍到了 Java 堆的内存布局,由 年轻代 (Young Ge…

2024数学建模国赛D题39页成品论文+每小问解题代码+可视化结果

2024 年高教社杯全国大学生数学建模竞赛完整分析文章 点击链接加入群聊【2024数学建模国赛资料汇总】&#xff1a;http://qm.qq.com/cgi-bin/qm/qr?_wv1027&klZncBILk30DuPRI1Bd8X-3Djv7ZVZyAv&authKeykKqNSSEbbZN%2FVKn%2BICOqJGahEHfhJEe7BSxK5IMua%2BYQqwaHkGaHvK…

ArrayList是线程安全的吗?怎么解决?

ArrayList是一个线程不安全的容器&#xff0c;如果在多线程中使用ArrayList&#xff0c;可能会导致程序出错。那可能是哪些问题呢&#xff1f;请看一个例子&#xff1a; package test;import java.util.ArrayList;/*** ArrayList并发问题演示*/ public class ArrayListMultiTh…

渗透测试中目标主机不出网的解决办法

当目标主机无法直接访问互联网时&#xff08;即“目标主机不出网”&#xff09;&#xff0c;渗透测试的难度会增加&#xff0c;因为攻击者无法通过通常的外部资源&#xff08;如命令与控制服务器、远程主机&#xff09;与目标通信。然而&#xff0c;有多种技术可以帮助渗透测试…

Bagging: 数量,而不是质量。

由 AI 生成&#xff1a;过度简化的树、引导聚合、集成方法、弱学习器、减少方差 集成方法 — 数量&#xff0c;而不是质量 一、说明 机器学习中的集成方法是指组合多个模型以提高预测性能的技术。集成方法背后的基本思想是聚合多个基础模型&#xff08;通常称为弱学习器&#…

在JavaScript当中,为什么NaN===NaN和NaN==NaN返回false?

作者&#xff1a;CSDN-PleaSure乐事 欢迎大家阅读我的博客 希望大家喜欢 使用环境&#xff1a;vscode chrome 今天这个话题的缘由是早上和一位同专业的学长聊天&#xff0c;他在公司完成了一个项目&#xff0c;项目当中有一个40个字段的返回值&#xff0c;于是牵扯到了某道他遇…

算法练习题14——leetcode84柱形图中最大的矩形(单调栈)

题目描述&#xff1a; 解题思路&#xff1a; 要解决这个问题&#xff0c;我们需要找到每个柱子可以扩展的最大左右边界&#xff0c;然后计算以每个柱子为高度的最大矩形面积。 具体步骤如下&#xff1a; 计算每个柱子左侧最近的比当前柱子矮的位置&#xff1a; 使用一个单调…

MATLAB实现PID参数自动整定

目录 1、项目说明 2、文件说明 1、项目说明 本项目旨在通过 MATLAB 语言实现 PID 参数的自动整定&#xff0c;并设计了一个直观易用的 GUI 界面。该系统特别适用于实验室环境下的 PID 参数自整定任务。整定的核心原则在于优化系统性能&#xff0c;使系统的衰减比尽可能接近理…

R-Adapter:零样本模型微调新突破,提升鲁棒性与泛化能力 | ECCV 2024

大规模图像-文本预训练模型实现了零样本分类&#xff0c;并在不同数据分布下提供了一致的准确性。然而&#xff0c;这些模型在下游任务中通常需要微调优化&#xff0c;这会降低对于超出分布范围的数据的泛化能力&#xff0c;并需要大量的计算资源。论文提出新颖的Robust Adapte…

linux————根据端口查找运行目录的三种方法

先查询端口找到进程 netstat -anlpt | grep 16443 | grep -v grep tcp 0 0 0.0.0.0:16443 0.0.0.0:* LISTEN 3710563/nginx: mast tcp 0 0 192.168.110.253:16443 192.168.110.22:64430 ESTABLISHED 3710580/n…

When can I expect multiple “choices“ in an OpenAI response?

题意&#xff1a;"什么时候我可以在 OpenAI 的回复中预期到多个“选择”&#xff1f;" 问题背景&#xff1a; For a simple OpenAI api call in python 对于一个在 python 中简单的 OpenAI API 调用 response openai.ChatCompletion.create(model"gpt-4&quo…

vue2+ueditor集成秀米编辑器

一、百度富文本编辑器 1.首先下载 百度富文本编辑器 下载地址:GitHub - fex-team/ueditor: rich text 富文本编辑器 2.把下载好的文件整理好 放在图片目录下 3. 安装插件vue-ueditor-wrap npm install vue-ueditor-wrap 4.在你所需要展示的页面 引入vue-ueditor-wrap 此时…

苹果电脑需要安装杀毒软件吗?探索Mac的安全世界!

在聊到电脑安全时&#xff0c;许多Mac用户都骄傲地声称&#xff1a;“我的Mac是不会中病毒的&#xff01;”确实&#xff0c;与Windows PC相比&#xff0c;Mac因其UNIX-based的操作系统构架&#xff0c;天生就更加安全。但这是否意味着Mac完全不需要杀毒软件呢&#xff1f;让我…

细胞因子系列

细胞因子是一类分泌性蛋白质&#xff0c;可以调控细胞之间的相互作用以及免疫反应等生物学过程。细胞因子在细胞信号传导、细胞生长、细胞分化和细胞凋亡等过程中起着重要作用。它们可以通过在细胞表面结合受体、介导细胞信号转导&#xff0c;从而调节免疫应答、细胞增殖和炎症…

Oracle RAC环境NBU异机恢复

一、故障原因 9月3日中午&#xff0c;主机运维人员误操作&#xff0c;对sydb数据库的ASM磁盘做了格式化&#xff0c;将三块共享磁盘做了分区&#xff0c;然后使用vgextend命令加入到本地文件系&#xff0c;造成sydb的两个实例异常&#xff0c;没有操作CRS磁盘&#xff0c;所以…

如何在IDEA的一个工程中创建多个项目?

在IDEA中&#xff0c;可以通过Module来创建新的工程。

仕考网:公务员考试资格审核时间是多久?

在国家公务员考试的报名过程中&#xff0c;考生完成信息填报并选定职位之后&#xff0c;资格审核结果将在提交后48小时内在报名信息页面公布。一般是从报名日次日上午8点开始&#xff0c;直至报名截止日次日18点结束。在此期间&#xff0c;考生可以通过国家公务员局的官方网站查…

8.分布式服务部署

文章目录 1.分布式服务部署1.1服务器个数1.2 ubuntu 的 MySQL 安装1.3对其他服务器授权1.4Java服务部署1.5常见问题 大家好&#xff0c;我是晓星航。今天为大家带来的是 分布式服务部署 相关的讲解&#xff01;&#x1f600; 1.分布式服务部署 1.1服务器个数 机器个数 1 - N…

Unity实战之滑动列表居中的放大其他的缩小功能

前言 最近项目需要做一个关卡选择列表,滑动到屏幕中间,代表该关卡被选中,展示选中状态。 预期效果 思路 使用3个父节点(左中右)用于挂载关卡item,通过改变关卡item的父节点来改变item的层级。 创建ui 创建父节点 首先创建一个空节点,命名为levelGroup,代表该节点…

硬刚苹果还得是华为

文&#xff5c;琥珀食酒社 作者 | 璇子 牛皮啊 华为发三折叠不意外 意外的是 这各种翻转简直颠覆想象 市面上没见过这么能“翻转”的&#xff1f; 要不怎么说硬刚苹果 还得看华为 就跟你同天怎么了&#xff1f; 拼创新、拼技术、拼热度 你就说哪比你差吧&#xff1f…