isdkz 发表于 2023-3-11 10:44:50

解决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 *****

歌者文明清理员 发表于 2023-3-11 10:52:20

@一点沙 白嫖

歌者文明清理员 发表于 2023-3-11 10:54:00

可以手动将 .whl 改成 .zip,然后把里面的所有文件都放到python目录/Lib/site-packages里面就行了

liuhongrun2022 发表于 2023-3-11 10:56:32

kankan

isdkz 发表于 2023-3-11 11:01:39

歌者文明清理员 发表于 2023-3-11 10:54
可以手动将 .whl 改成 .zip,然后把里面的所有文件都放到python目录/Lib/site-packages里面就行了

这种方式不是很推荐,如果这个模块全部都是 python 的源码的话就有可能行得通,

如果这个模块还有一些二进制依赖的话就很可能出问题

一点沙 发表于 2023-3-11 11:03:14

歌者文明清理员 发表于 2023-3-11 10:52
@一点沙 白嫖

来啦

sfqxx 发表于 2023-3-11 11:03:18

我想看看彩蛋

sfqxx 发表于 2023-3-11 11:04:37

@python爱好者. @一点沙 @不二如是 快来支持

一点沙 发表于 2023-3-11 11:05:28

sfqxx 发表于 2023-3-11 11:04
@python爱好者. @一点沙 @不二如是 快来支持

我已经来啦
继续艾特@学习编程中的Ben @高山 @liuhongrun2022 @zhangjinxuan

sfqxx 发表于 2023-3-11 11:06:01

一点沙 发表于 2023-3-11 11:05
我已经来啦
继续艾特@学习编程中的Ben @高山 @liuhongrun2022 @zhangjinxuan

{:10_257:}

一点沙 发表于 2023-3-11 11:07:09

sfqxx 发表于 2023-3-11 11:06


你这个表情神马意思

汐澜sama 发表于 2023-3-11 11:08:37

查看隐藏内容

英俊的细胞哥哥 发表于 2023-3-11 11:11:18

看看彩蛋

sfqxx 发表于 2023-3-11 11:13:24

一点沙 发表于 2023-3-11 11:07
你这个表情神马意思

没有意思{:10_257:}{:10_257:}{:10_257:}

sfqxx 发表于 2023-3-11 11:42:30

ok呀,荣誉也是一秒过20了
isdkz要谢谢我【doge】
申请精华吧

sfqxx 发表于 2023-3-11 11:45:24

{:10_256:}

平凡之路1314 发表于 2023-3-11 11:49:43

看看,支持大佬

平凡之路1314 发表于 2023-3-11 11:50:07

再来

陶远航 发表于 2023-3-11 12:37:09

看看

long90 发表于 2023-3-11 14:05:59

歌者文明清理员 发表于 2023-3-11 10:54
可以手动将 .whl 改成 .zip,然后把里面的所有文件都放到python目录/Lib/site-packages里面就行了

.whl 不用解压放到web应用指定文件夹,自动安装。
页: [1] 2 3 4
查看完整版本: 解决pip安装模块报错 error: Microsoft Visual C++ 14.0 or greater is required ....