有人问我将此问题作为另一个问题发表在另一篇文章中。 pip安装是否始终考虑当前python版本的编译器?例如,此blog post解释说numpy模块使用c编译代码,必须针对python安装的同一编译器进行编译。
例如: 系统Python : 在Win32上的Python 2.7.13(默认值,2017年8月21日,11:46:40)[MSC v.1900 64位(AMD64)]
Nuke Python : 在Win32上的Python 2.7.13(默认值,2017年8月21日,11:46:40)[MSC v.1900 64位(AMD64)]
v。 1900->告诉我们使用了哪个编译器,必须根据相同的版本编译numpy和其他软件包
答案 0 :(得分:0)
Pip优先考虑PATH中的版本。 Pip3和Pip用于区分两个版本。
答案 1 :(得分:0)
pip install
从不安装编译器。您必须先运行编译器,然后再运行pip install
。
请参阅https://wiki.python.org/moin/WindowsCompilers,以了解需要为不同版本的Python安装的VC版本。
安装预编译的车轮会容易得多。所说的numpy有a lot of precompiled wheels。当前,在MacOS 64位,Linux 32和64位,Windows 32和64位上有适用于Python 2.7、3.5、3.6和3.7的二进制文件。只需输入pip install numpy
,您的pip
即可自动确定正在运行的平台并下载并安装合适的车轮。
答案 2 :(得分:0)
是,所有Python软件包管理工具都建立在distutils
软件包和by default it enforces扩展模块的基础上,并以the same compiler作为解释器本身进行编译。
在Windows上,编译器版本也是enforced to be the same(或者,从Python 3.5开始,是compatible)。在类似Unix的the same compiler and linker flags上用于编译Python will also be used来编译扩展。
请注意,它更多是为了方便和保障而不是要求。 Except for some special cases使用其他编译器版本构建时,Python扩展应该可以正常工作。