错误
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 程序包镜像的国内源如下:
- 清华大学: https://pypi.tuna.tsinghua.edu.cn/simple/
- 豆瓣(douban): https://pypi.douban.com/simple/
- 阿里云: https://mirrors.aliyun.com/pypi/simple/
- 中国科技大学: 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安装第三方库出错完美解决方法