这已经被问过并回答了几次,但是你会看到以前的答案都对我不起作用——我觉得有些东西已经改变了,使所有旧的答案都过时了。或者至少,我处于某种边缘情况:
在 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%
目录中。并setup.cfg
在运行时放入我的当前目录pip
。它们的内容与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 shell 内工作,但在 cmd shell 内不行?
奖励:许多旧答案建议安装 Visual Studio 2008 作为解决vcvarsall.bat
错误的一种方式。但截至今年 5 月,微软不再分发该软件。有谁知道哪里还可以下载VS2008?我问是因为能够使用vcvarsall.bat
而不是 MinGW 可能会解决这个问题。