python让Pip在Windows上使用MinGW32?

2024-06-16 12:25:17 发布

您现在位置:Python中文网/ 问答频道 /正文

这个问题已经被问过和回答过几次了,但是你会发现以前的答案对我都不起作用——我觉得有些东西已经改变了,使得所有的旧答案都过时了。或者至少,我处于某种边缘状态:

在Windows7上,我安装了MinGW32和Python2.7(32位版本)(我也在Python2.6上尝试过,得到了相同的结果)。

  • 路径环境变量设置正确。

  • 我编辑了cygwincompiler.py以删除-mno-cygwin的引用。我已经把正确的distutils.cfg文件放入C:\Python27\Lib\distutils

  • 为了清楚起见:distutils.cfg在两行上包含[build] compiler=mingw32

  • 我还(为了安全起见)将pydistutils.cfg放在%HOME%目录中。运行pip时,将setup.cfg放入当前目录。它们的内容与distutils.cfg相同。

我知道这一切都在起作用,因为pip install cythonpip install pycrypto都成功编译。

然而,奇怪的是,一些包仍然会给我unable to find vcvarsall.bat错误。两个例子是:pyproj和numpy。

好像有时候pip知道使用MinGW编译器,有时候却不知道?

此外,如果我使用MinGW附带的MSYS shell,那么pip install numpy就神奇地成功了。但是pip install pyproj仍然会失败。

我在几台机器上都试过了,结果完全一样。

有人知道这是怎么回事吗?为什么pip知道使用mingw32编译一些c模块而不是其他模块?另外,为什么pip install numpy在MSYS shell中工作,而不是在cmd shell中?

另外:许多老的答案建议安装Visual Studio 2008作为解决vcvarsall.bat错误的一种方法。但截至今年5月,微软已不再发布该软件。有人知道还有一个地方可以下载VS2008吗?我这么问是因为用vcvarsall.bat代替MinGW可能会解决这个问题。


Tags: 模块installpip答案numpy错误shellcfg