这个问题已经被提出并回答了几次,但正如你所看到的,以前的答案都不适用于我 - 我觉得有些事情已经改变,以至于所有的旧答案都已过时。或者至少,我在某种边缘的情况下:蟒蛇 - 获取点在Windows上使用MinGW32?
在Windows 7中,我已经安装了MinGW32和Python 2.7(32位版本)(我也试过这与Python 2.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 cython
和pip install pycrypto
都编译成功。
然而,神秘的是,一些软件包仍然给我unable to find vcvarsall.bat
错误。两个例子是:pyproj和numpy。
这就好像有时pip
知道使用MinGW编译器,有时它不?此外,如果我使用MinGW自带的MSYS shell,那么神奇地pip install numpy
成功。但pip install pyproj
仍然失败,出现unable to find vcvarsall.bat
。
我试过这个在几台机器上都有完全相同的结果。
有人知道这里发生了什么吗?为什么pip
知道使用mingw32来编译一些c模块而不是其他的?另外,为什么pip install numpy
在MSYS外壳内工作,但不在cmd外壳内?
奖金:很多很多旧的答案建议安装Visual Studio 2008作为解决vcvarsall.bat
错误的一种方法。但截至今年五月,微软不再分发这个软件。有谁知道一个地方,仍然可以下载VS2008?我问,因为有可能使用vcvarsall.bat
而不是MinGW来解决这个问题。
+1我确实有同样的问题:有时候pip能够找到mingw,有时他不能。 – Sam
你不需要所有的VS2008,你只需要windows SDK,它仍然可以下载。 http://www.microsoft.com/en-us/download/details.aspx?id=3138(链接可能不会很好) –