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

错误

Could not find a version that satisfies the requirement PIL (from versions: none) ERROR: No matching distribution found for PILTry 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安装第三方库出错完美解决方法

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VSCode 使用CMakePreset找不到cl.exe编译器的问题

在用vscode开发c项目的时候,使用预先配置的CMakePresets.json可以把一些特定的cmake选项固定下来,在配置时直接使用 "cmake --config --preset presetname"就可以进行配置,免去在命令行输入过多的配置参数。 但是在vscode中&#…

xstream实现xml和java bean 互相转换

目录 pom引用java bean 类XML 转换工具类测试类执行结果注意问题 JAXB方式见: JAXB实现XML和Bean相互转换 Java中实现XML和Bean的转换的方式或插件有以下几种: JAXB(Java Architecture for XML Binding):JAXB是Java …

EasyExcel入门使用教程

文章目录 简介一、工程创建🎑二、读操作🎊二、写操作🎄总结 简介 数据导入导出意义 后台管理系统是管理、处理企业业务数据的重要工具,在这样的系统中,数据的导入和导出功能是非常重要的,其主要意义包括以下…

Linux软硬链接

文章目录 🐋1. 建立软硬链接现象🐠2. 软硬链接🪸2.1 软链接🪸2.2 硬链接 🐦3. 应用场景🪹3.1 软链接应用场景🪹3.2 硬链接应用场景 🐋1. 建立软硬链接现象 我们这里给file.txt建立软…

智慧城市怎么实时监测内涝积水的发生及解决办法?

随着城市化进程步伐不断加快,城市内涝问题越来越受到人们的关注。内涝不仅不便于人们的生活,还可能危害城市之中的基础设施比如路面等。因此实时监测内涝积水的发生并采取有效的解决办法是市政府的紧急任务,同时解决城市内涝也利于城市生命线…

Vue computed 计算属性

1.计算属性的相关知识 概念 :基于现有的数据,计算出来的新属性。依赖数据的变化,自动重新计算。 语法: ① 声明在 computed 配置项 中,一个计算属性对应一个函数 ② 使用起来和普通属性一样使用 {{ 计算属性名 …

数据结构 栈(C语言实现)

目录 1.栈的概念及结构2.栈的代码实现 1.栈的概念及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In F…

反射之Type类

Type类 Type接口是所有类型的父接口&#xff0c;有四个子接口和一个实现类。 Type实现图 Class类比较常见&#xff0c;表示的是原始类型。表示的Java类在JVM里表现为一个Class对象 ParameterizedType表示的是参数化类型&#xff0c;对应 List<T>、List<String> 等格…

Vue中的watch的使用

先看下Vue运行机制图 那么我们思考一件事&#xff0c;vue是通过watcher监听数据的变化然后给发布-订阅&#xff0c;这样实现了dom的渲染&#xff0c;那么我们思考一件事&#xff0c;我们往往需要知道一个数据的变化然后给页面相应的渲染&#xff0c;那么我们工作中在组件中的数…

HarmonyOS元服务实现今天吃什么

一、前言 作为一个职业打工人&#xff0c;每天点外卖吃啥东西都有选择综合症&#xff0c;突发奇想让程序帮我们随机选择一个吃的&#xff0c;是不是可以解决我们的选择问题呢&#xff0c;说干就干&#xff0c;我们就使用HarmonyOS元服务实现一下这个功能。为什么选择这个Harmon…

VBA 宏For WPS(完整版)-供大家学习研究参考

VBE7.1安装方法&#xff1a; 适用于安装 WPS 2019 版本的 缺少 VBA 模块的 亲测可用&#xff0c;内含 VBA 7.1 安装顺序1、2、3、4按照顺序安装&#xff1b; 1.安装MSVCRTRedist\Release目录下32位的安装包&#xff0c;此安装包为运行时库 3.安装VBARedist\Release目录下32位的…

安卓:打包apk时出现Execution failed for task ‘:app:lintVitalRelease

Execution failed for task :lintVitalRelease 程序可以正常运行&#xff0c;但是打包apk的时候报Execution failed for task ‘:app:lintVitalRelease导致打包失败&#xff0c;原因是执行lintVitalRelease失败了&#xff0c;存在错误。解决办法&#xff1a;在app模块的build.…