一键升级pip安装包getinstalleddistributions报错解决方案
之前一直使用的一个方法,可以不通过其他工具软件,一键升级所有的pip安装包,使用起来比较方便。但是不知道在哪个版本的pip中,"get_installed_distributions"这个函数被替代了,所以会导致报错。
原来使用的代码如下:# *_* coding : UTF-8 *_* # 开发人员 : CZW # 开发时间 : 20/2/20 14:52 # 文件名称 : updatePip.py # 主要功能 : 批量升级pip 已安装模块版本到最新 import pip from subprocess import call from pip._internal.utils.misc import get_installed_distributions for dist in pip.get_installed_distributions(): call("pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade " + dist.project_name, shell=True) print("所有库文件版本更新完成!") # 此处使用清华源进行安装
原来是直接运行这个脚本,就可以一键升级所有的pip包到最新版本。现在我的pip版本是23.0.1版本了,运行的时候直接报错了,错误信息如下:(venv) PS D:workssanic_w01> py UpdatePip.py Traceback (most recent call last): File "D:workssanic_w01UpdatePip.py", line 10, in from pip._internal.utils.misc import get_installed_distributions ImportError: cannot import name "get_installed_distributions" from "pip._internal.utils.misc" (D:workssanic_w01venvLibsite-packagespip_internalutilsmisc.py)
报错信息
主要原因就是:通过 pip._internal.utils.misc 引入 get_installed_distributions 函数的时候错误,起始就是‘get_installed_distributions’这个函数不存在了,网上百度了一大圈,给出的解决方案都是把pip给降级,降级之后就可以运行了。
但是既然我都想把所有包升级到最新版本的,又怎么能够忍受pip使用旧版本呢!
于是各种查阅,包括翻看源码,肯定是更换了位置或者有新的函数名称代替了get_installed_distributions这个函数。经过一番查找,发现:
再pip 23.0.1版本中, get_installed_distributions 模块被移除了,取而代之的是 pkg_resources 模块中的 working_set 属性。
变更模块信息
使用举例:# 可以使用以下代码来获取当前系统上安装的模块列表 import pkg_resources installed_packages = [d for d in pkg_resources.working_set]
如果您想要获取指定模块的版本信息,可以使用以下代码:import pkg_resources version = pkg_resources.get_distribution("your_package_name").version
有了这些信息就有了上面遇到问题的解决方案,通过pkg_resources函数来重写一开始的升级pip的脚本:# *_* coding : UTF-8 *_* # 开发人员 : CZW # 开发时间 : 2023/03/21 11:30 # 文件名称 : updatePip.py # 程序版本 : V2.0 # 主要功能 : 批量升级pip 已安装模块版本到最新 import pip import pkg_resources from subprocess import call for d in pkg_resources.working_set: call("pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade " + d.project_name, shell=True) print("所有库文件版本更新完成!") # 这里使用的是清华源进行安装,能够保证速度,也可以根据需要更换其他源 # 由于代码比较简单,也没有定义函数或者类的,没有使用日志记录等, # 就采用就简单的print做一个指示,可以genuine需要做其他变化,或者美化
通过变更pkg_resources.working_set这个函数可以完美解决get_installed_distributions的错误。
ImportError: cannot import name "get_installed_distributions" from "pip._internal.utils.misc"
2022中国互联网大会下一代互联网发展与应用论坛成功举办11月15日17日,由工业和信息化部深圳市人民政府主办,中国互联网协会广东省通信管理局深圳市工业和信息化局等单位承办的2022(第二十一届)中国互联网大会于在深圳举行。11月17日
名和利,救不了王迅文17编辑嘈坊最近几年,大松鼠王迅的演艺事业可谓一帆风顺。刚刚在国庆档主旋律大制作万里归途中崭露头角,近期热映电影扫黑行动里又有他的出色表现。可是他的前妻魏臻再也看不到曾经的丈夫意
COP27闭幕在即,外媒非洲气候议题被忽略当地时间11月18日,在埃及沙姆沙伊赫举行的联合国气候变化框架公约第二十七届缔约方大会(COP27)开启了最后一天的议程,本届大会即将落幕。这是2016年以来首次在非洲召开的气候大
重塑金融生态银行探索元宇宙新蓝海本报记者王柯瑾北京报道元宇宙概念炙手可热,引得银行等金融机构纷纷布局。近日,中国经营报记者注意到,继AI虚拟数字员工数字藏品之后,南京银行正式上线元宇宙数字空间你好世界。在第五届中
iQOO11来了!或搭载6。78英寸E6屏幕内置5000mAh电池近日,高通举办了2022骁龙峰会,并正式发布第二代骁龙8。与此同时,iQOO手机也正式宣布,性能芯调校之王!iQOO11系列将首批搭载全新第二代骁龙8!新旗舰,不止旗舰芯!现在,随
智者乐水,仁者乐山大乐之野幼儿园一群固执的人,心怀伟大理想,我们珍惜每一次才华上台的机会,必将呕心沥血,与您并肩作战,人生之美好在于出格,而非时常的绝对正确,去人文的自由舒展遵循内心原始本能纯粹之表达,我们将从宏
2022云南省社区女子徒步大会在丽江泸沽湖开赛2022云南省社区女子徒步大会在丽江泸沽湖开赛(供图)2022云南省社区女子徒步大会在丽江泸沽湖开赛(供图)2022云南省社区女子徒步大会在丽江泸沽湖开赛(供图)全民健身,体育强国
315曝光软件下载陷阱,中关村在线公开道歉315曝光软件下载陷阱,中关村在线公开道歉,但是没公开的是平台借此赚了多少钱。315晚会上,央视曝光了包括中关村在线在内的不少软件下载平台,诱导消费者下载,捆绑安装软件的陷阱。用户
是真的!科技越来越强大!高德北斗厉害了今天用高德导航,发展竟然真的弹出了北斗卫星导航系统的弹窗,提示我当前有20颗北斗卫星为你定位。20颗北斗卫星为你定位22颗北斗卫星为你定位科技真是越来越厉害,我们的北斗全球导航定位
微创新橙色的香蕉你知道是什么味道吗?是富含营养元素的味道在生物技术研究中,一个重要的应用方向就是强化食物的营养,因为在一些较落后的国家与地区,鼓励当地居民购买维生素和微量营养元素的补充剂,可行性实在是太低。所以科学家认为更好的办法,是将
IPv6网络部署方案网规补充阅读材料1概述1。1IPv6的部署阶段当前大量的网络是IPv4网络,随着IPv6的部署,很长一段时间是IPv4与IPv6共存的过渡阶段。通常将IPv6的部署划分为三个阶段图11IPv6的部