解决pip安装模块报错 error: Microsoft Visual C++ 14.0 or greater is required ....
本帖最后由 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 的困扰{:5_104:}
至于这个报错是什么原因呢?
当你去 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语言的编译环境
那要怎么解决这个问题呢,这个好办,去安装一个编译环境就好了{:10_256:}
然而去下载安装一个编译环境并不是良策,原因如下:
第一、编译环境占用空间,自己不一定能够用得上这个编译环境,还得花时间搭环境
第二、pypi上有很多的模块,不是什么模块都是用C语言写的,有一些模块是 rust 语言写的,那也得去装个 rust 的编译环境?所以不能保证安装一个C语言的编译环境就万事大吉了。
第三、编译环境也分版本,有时候还得搞清楚版本,版本没搞对编译环境也瞎折腾了,在环境上花太多时间对新手很不友好
所以我们就来聊聊第二种方法(正解){:10_298:}
我们可以去 pypi 仓库下载编译好二进制构建包来安装,当在这个模块的版本找不到可用的二进制构建包的时候,就降版本往下找,直到找到可用的二进制构建包为止
在 Release history 中选择模块版本
我们可以通过 pep425tag 来判断版本是否可用,这个 tag 就是 whl 文件名的模块名和模块版本后面的那一部分
用 “pip debug -v” 命令来获取当前 python 兼容的二进制构建包的 tag
将可以使用的 whl 二进制构建包下载下来后通过 “pip install whl的文件名” 的方式进行安装(注意:下载下来的whl文件一定不能改名,要原封不动,不要看它名字太长就把它给改了)
别走,还有彩蛋!!!{:10_264:}
**** Hidden Message *****
@一点沙 白嫖 可以手动将 .whl 改成 .zip,然后把里面的所有文件都放到python目录/Lib/site-packages里面就行了 kankan 歌者文明清理员 发表于 2023-3-11 10:54
可以手动将 .whl 改成 .zip,然后把里面的所有文件都放到python目录/Lib/site-packages里面就行了
这种方式不是很推荐,如果这个模块全部都是 python 的源码的话就有可能行得通,
如果这个模块还有一些二进制依赖的话就很可能出问题 歌者文明清理员 发表于 2023-3-11 10:52
@一点沙 白嫖
来啦 我想看看彩蛋 @python爱好者. @一点沙 @不二如是 快来支持 sfqxx 发表于 2023-3-11 11:04
@python爱好者. @一点沙 @不二如是 快来支持
我已经来啦
继续艾特@学习编程中的Ben @高山 @liuhongrun2022 @zhangjinxuan 一点沙 发表于 2023-3-11 11:05
我已经来啦
继续艾特@学习编程中的Ben @高山 @liuhongrun2022 @zhangjinxuan
{:10_257:} sfqxx 发表于 2023-3-11 11:06
你这个表情神马意思 查看隐藏内容 看看彩蛋 一点沙 发表于 2023-3-11 11:07
你这个表情神马意思
没有意思{:10_257:}{:10_257:}{:10_257:} ok呀,荣誉也是一秒过20了
isdkz要谢谢我【doge】
申请精华吧 {:10_256:} 看看,支持大佬 再来 看看 歌者文明清理员 发表于 2023-3-11 10:54
可以手动将 .whl 改成 .zip,然后把里面的所有文件都放到python目录/Lib/site-packages里面就行了
.whl 不用解压放到web应用指定文件夹,自动安装。