马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 isdkz 于 2024-9-29 19:53 编辑
解决pip安装模块报错 error: Microsoft Visual C++ 14.0 or greater is required 的问题
有不少同学可能在安装一个 python 模块的时候都受到过 error: Microsoft Visual C++ 14.0 or greater is required 的困扰
至于这个报错是什么原因呢?
当你去 https://pypi.org (pypi的官网)去查找一个模块时,你可能会发现在 Download files 中有 Source Distribution 和 Built Distributions 两种构建包
Source Distribution为源构建包,而 Built Distributions 为编译好的二进制构建包。
而当你使用 “pip install 模块名” 的方式去安装一个模块的时候会先在 pypi 源中查找当前 python 可用的这个模块的最新版本,
然后去查找该模块最新版本的二进制构建包来安装,如果没有当前 python、当前平台可用的最新版本的二进制构建包 ,则下载源构建包来去编译安装
而我们通常就是因为没有编译环境而报错,error: Microsoft Visual C++ 14.0 or greater is required 就是因为没有C语言的编译环境
那要怎么解决这个问题呢,这个好办,去安装一个编译环境就好了
然而去下载安装一个编译环境并不是良策,原因如下:
第一、编译环境占用空间,自己不一定能够用得上这个编译环境,还得花时间搭环境
第二、pypi上有很多的模块,不是什么模块都是用C语言写的,有一些模块是 rust 语言写的,那也得去装个 rust 的编译环境?所以不能保证安装一个C语言的编译环境就万事大吉了。
第三、编译环境也分版本,有时候还得搞清楚版本,版本没搞对编译环境也瞎折腾了,在环境上花太多时间对新手很不友好
所以我们就来聊聊第二种方法(正解)
我们可以去 pypi 仓库下载编译好二进制构建包来安装,当在这个模块的版本找不到可用的二进制构建包的时候,就降版本往下找,直到找到可用的二进制构建包为止
在 Release history 中选择模块版本
我们可以通过 pep425tag 来判断版本是否可用,这个 tag 就是 whl 文件名的模块名和模块版本后面的那一部分
用 “pip debug -v” 命令来获取当前 python 兼容的二进制构建包的 tag
将可以使用的 whl 二进制构建包下载下来后通过 “pip install whl的文件名” 的方式进行安装(注意:下载下来的whl文件一定不能改名,要原封不动,不要看它名字太长就把它给改了)
别走,还有彩蛋!!!
[/hide]
|