Python安装第三方库出错完美解决方法

错误

Could not find a version that satisfies the requirement PIL (from versions: none) ERROR: No matching distribution found for PIL

Try to run this command from the system terminal. Make sure that you use the correct version of 'pip' installed for your Python interpreter located at 'D:\PyCode\venv\Scripts\python.exe'.

原因

1.网速过慢导致下载出错
2.版本不兼容问题
3.安装内置库或名称错误

解决方法

1.网速问题导致出错

在没有做任何配置的情况下,国内下载第三方库的时候是特别缓慢的,有时下载速度甚至才10几kb/s,还可能会遇到下载到一半,突然跳出一大堆红色提示,然后下载失败的情况。

其实这是因为我们通过pip安装时默认是从 PyPI 官方服务器拉取并下载包,使用的是默认的国外镜像源即 https://pypi.org/simple ,网络连接较差,下载速度比较慢,经常会网络传输断开导致下载失败。

在这种情况下,可以选择更换为国内的镜像源,例如阿里云、豆瓣、清华大学等都提供了Python的镜像服务,利用这些国内的镜像,可以大大提高下载和安装包的速度。

Python 程序包镜像的国内源如下:

  1. 清华大学: https://pypi.tuna.tsinghua.edu.cn/simple/
  2. 豆瓣(douban): https://pypi.douban.com/simple/
  3. 阿里云: https://mirrors.aliyun.com/pypi/simple/
  4. 中国科技大学: https://pypi.mirrors.ustc.edu.cn/simple/
(1)使用国内镜像源安装

使用方法:pip install -i 镜像源 包名

比如我要安装requests库,则可以在Terminal控制台执行下面命令

pip install -i https://pypi.douban.com/simple requests 

这样下载,因为使用的是国内的源下载,速度和之前比完全不是一个级别的,简直飞快。

(2)修改系统默认镜像源

我们也可以直接修改默认的镜像源,比如将系统默认镜像源设置为清华源,在控制台输入下面命令

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

这样做之后就不用每次都要加上-i 镜像源 参数进行下载,通过 pip 安装 Python 包时,都将从设置的清华源下载,方便且高效。

2.版本兼容问题出错

错误提示:

 Could not find a version that satisfies the requirement time (from versions: none) Non-zero exit code (2) error occured when installing package pillow

建议的解决方案:

出现这个问题,首先查一下当前pip版本

pip -V

在这里插入图片描述
然后将pip更新到最新版本,执行下面命令

python -m pip install --upgrade pip

再尝试下载安装库,如果还是安装不上,则降低pip版本(比原来的版本低一些),看看问题是否能解决。

比如我要将pip版本降到 20.2.1 ,则在控制台中输入

python -m pip install pip==20.2.1 

若多次尝试还是无法安装,则只能去官方 PyPI 页面查看一下安装的库所需的python版本了,因为有可能是Python版本不兼容。

毕竟我遇到过安装tensorflow时就是这种情况,并且还被官方欺骗了,官网明明显示支持python 3.10,但实际安装时就报错,降低tensorflow版本还是最烦人的系统缺少依赖错误,安装各种Visual studio版本、各种dll文件花了半小时没解决,最后将python降为3.9,1秒安装成功 wtf!

3.安装内置库或名称错误

(1)要注意是否是Python内置库,有些人习惯性的先安装自己代码中需要使用到的库,一不小心就会出现安装Python内置库的问题,比如time、os、json等等库,这些内置库是不用自己再单独下载安装的。

(2)要注意安装的库名称是否正确。有些时候import的包名和我们安装时的会有不同,比如像图像处理的PIL库,目前安装的时候就不是pip install PIL安装,而是使用pip install pillow 进行安装

在这里插入图片描述
因为PIL一直没有更新和维护,当前大家用的都是后来出现的基于PIL的pillow 库,但为了兼容PIL,pillow导入时使用的名称仍然是 “PIL”。但这导致很多人安装时直接写成PIL导致安装出错。还有比如与图像有关的cv2库,安装的时候却使用的是pip install opencv-python 进行安装,因此大家一定要注意使用正确的名称安装。

4.在虚拟环境中安装

在我们有多个项目的情况下,可能之前项目A需要的requests库版本是2.25.2,而现在项目B需要2.28.2,此时又不好将其更新到2.28.2,因为会影响到项目A的运行,这时虚拟环境便派上用场了。

使用虚拟环境可以将各个项目的环境独立出来,互不干扰。下面说说虚拟环境的创建和使用,非常简单。

首先使用下面的命令来建立一个虚拟环境:

python -m venv my_env

这个命令会在当前目录下创建一个名为“my_env”的文件夹,这个文件夹就是我们的虚拟环境。我们也可以把 “my_env” 换成你需要的任何名称。

然后切换到虚拟环境,执行下面命令

my_env\Scripts\activate

如果是Linux使用的是

source my_env/bin/activate

执行这样的命令后,会发现命令行的提示字符前面多了个 “(my_env)”,这表示现在是在 “my_env” 的虚拟环境中。然后就可以正常使用pip安装库了,注意因为是独立环境所以项目用到的库要重新在虚拟环境装一遍,之前安装的都是在外部环境中。

当我们完成对虚拟环境的操作后,可以使用下面的命令退出虚拟环境:

deactivate

使用虚拟环境,我们可以为每个项目创建单独的环境,使用自己需要的包和版本,使得我们的项目更加清晰,便于管理,也避免了版本冲突的问题。当然也可以使用anaconda创建独立的环境,不过anaconda要单独先安装,这里我就不提了,大家自己去探索吧。

如果教程对你有帮助的话,可以关注我了解更多知识。







hwj会幸福

Python安装第三方库出错完美解决方法

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

轻松找回您的珍贵回忆的最好的 6 种照片数据恢复软件!

照片是珍惜过去珍贵时刻的唯一方式。它们让记忆永存,帮助我们重温生命中最美好的时刻。但是,当这些时刻丢失时会发生什么?您是否曾经因系统崩溃而意外删除或丢失照片?丢失照片可能令人心碎,但仍有希望,因为…

力扣每日一道系列 --- LeetCode 138. 随机链表的复制

📷 江池俊: 个人主页 🔥个人专栏: ✅数据结构探索 ✅LeetCode每日一道 🌅 有航道的人,再渺小也不会迷途。 LeetCode 138. 随机链表的复制 给你一个长度为 n 的链表,每个节点包含一个额外增加…

【双指针】:Leetcode283.移动零

朋友们、伙计们,我们又见面了,本专栏是关于各种算法的解析,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C 语 言 专 栏:C语言:从入门到精通 数据结构专栏&…

[数据结构]—带头双向循环链表——超详解

💓作者简介🎉:在校大二迷茫大学生 💖个人主页🎉:小李很执着 💗系列专栏🎉:数据结构 每日分享✨:旅行是为了迷路,迷路是为了遇上美好❣️❣️❣️ …

Git的基本操作以及原理介绍

文章目录 基本操作创建git仓库配置name和email .git目录的结构git add & git commit.git目录结构的变化 git追踪管理的数据git的版本回退回退的原理回退的三种情况 版本库中文件的删除git分支管理分支的删除合并分支时的冲突分支的合并模式分支策略git stash不要在master分…

数据结构-时间复杂度与空间复杂度详解

文章目录 算法效率时间复杂度概念计算例1例2例3补充例4 空间复杂度例1例2 算法效率 算法效率分析分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度,而空间效率被称作空间复杂度。时间复杂度主要衡量的是一个算法的运行速度&#…

Delicious Retouch5 for mac(PS磨皮插件DR5白金版)

Delicious Retouch5是一款强大的Photoshop插件,专为专业摄影师和摄影爱好者设计,提供一系列高级修图工具,帮助用户更快速、更有效地进行照片修饰和美化。其主要功能包括皮肤美容、人像润色、头发修饰、修复工具等,并配备定制化画笔…

海外邮件接收延迟、接收不到怎么办?U-Mail邮件网关来了

随着经济全球化的发展,很多国内企业开始踏足海外市场,电子邮件就成为了国内企业与海外客户沟通交流的主要渠道。然而海外邮件接收延迟、接收不到等问题成为了困扰企业与海外客户沟通的一大阻碍,导致客户邮件回复不及时,询盘邮件接…

新版本!飞凌嵌入式RK3568系列开发板全面支持Debian 11系统

飞凌嵌入式OK3568-C/OK3568J-C开发板现已全面支持Debian 11系统,新系统的加持能为用户提供主控新选择,并为开发者带来更多开发便利! Debian系统作为一种广受欢迎和信赖的开源操作系统,以其稳定性、可靠性和开放性而闻名&#xff0…

2013年5月23日 Go生态洞察:高级Go并发模式分析

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

OpenELA 正式公开 Enterprise Linux 源代码

导读近日消息,在红帽(Red Hat)宣布不再对外公开 Red Hat Enterprise Linux(RHEL)源代码之后,同属 Linux 领域的甲骨文、SUSE 及 CIQ 宣布成立了 Open Enterprise Linux Association(OpenELA&…

xstream实现xml和java bean 互相转换

目录 pom引用java bean 类XML 转换工具类测试类执行结果注意问题 Java中实现XML和Bean的转换的方式或插件有以下几种: JAXB(Java Architecture for XML Binding):JAXB是Java SE的一部分,可以将Java对象与XML文档相互转…

Linux 图形界面配置RAID

目录 RAID 1 配置 RAID 5配置 , RAID 配置起来要比 LVM 方便,因为它不像 LVM 那样分了物理卷、卷组和逻辑卷三层,而且每层都需要配置。我们在图形安装界面中配置 RAID 1和 RAID 5,先来看看 RAID 1 的配置方法。 RAID 1 配置 配置 RAID 1…

开源项目datavines内存泄漏问题分析

应用程序开启JMX java -Dspring.profiles.activemysql -Dcom.sun.management.jmxremote.port1099 -Dcom.sun.management.jmxremote.sslfalse -Dcom.sun.management.jmxremote.authenticatefalse -Djava.rmi.server.hostname127.0.0.1 -jar dataVines.jar 通过jdk自带工具&…

数据结构第四课 -----线性表之队列

作者前言 🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂 ​🎂 作者介绍: 🎂🎂 🎂 🎉🎉&#x1f389…

使用geek卸载windows软件,干净彻底

我们在电脑上安装软件,以及在使用软件的过程中,会产生一些程序文件、注册表项和临时文件等,用来支持软件的正常使用,都是正常现象。 但是,在卸载软件时,很多软件的卸载程序,并不能完全清除软件…

excel中正态分布函数NORM.DIST和NORMDIST,以及它们之间的区别

NORM.DIST和NORMDIST的区别 NORM.DIST和NORMDIST函数都可以返回正态分布的概率密度、或者正态累积分布。 根据微软官网上的说法,NORMDIST函数已经不建议使用了,它已经被一个或者几个新的函数代替(例如NORM.DIST),这些…

RabbitMQ-高级篇-黑马程序员

代码: 链接: https://pan.baidu.com/s/1nQBIgB_SbzoKu_XMWZ3JoA?pwdaeoe 提取码:aeoe 在昨天的练习作业中,我们改造了余额支付功能,在支付成功后利用RabbitMQ通知交易服务,更新业务订单状态为已支付。 但…

Python数据结构:集合(set)详解

1.集合的概念 在Python中,集合(Set)是一种无序、不重复的数据类型,它的实现基于哈希表,是由唯一元素组成的。集合中不允许有重复的元素,即相同元素只能出现一次。Python中的集合类似于数学中的集合&#xf…