這個問題已經被提出並回答了幾次,但正如你所看到的,以前的答案都不適用於我 - 我覺得有些事情已經改變,以至於所有的舊答案都已過時。或者至少,我在某種邊緣的情況下:蟒蛇 - 獲取點在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(鏈接可能不會很好) –