[英]python - Getting Pip to use MinGW32 on Windows?
這已被問過並回答了幾次,但是你會發現以前的答案都不適合我 - 我覺得有些事情已經發生了變化,使得所有舊的答案都過時了。 或者至少,我處於某種邊緣情況:
在Windows 7機器上,我安裝了MinGW32和Python 2.7(32位版本)(我也嘗試過使用Python 2.6並獲得相同的結果)。
路徑環境變量設置正確。
我編輯了cygwincompiler.py
以刪除對-mno-cygwin
cygwincompiler.py
。 我已將正確的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 shell中pip install numpy
工作但不在cmd shell中?
獎勵:很多很老的答案建議安裝Visual Studio 2008作為解決vcvarsall.bat
錯誤的一種方法。 但截至今年5月,微軟已不再發布此軟件。 有誰知道一個人仍然可以下載VS2008的地方? 我問,因為能夠使用vcvarsall.bat
代替MinGW可能會解決這個問題。
visual studio express 2008 http://download.microsoft.com/download/8/B/5/8B5804AD-4990-40D0-A6AA-CE894CBBB3DC/VS2008ExpressENUX1397868.iso
或者,如果您是學生,您仍然可以通過dreamspark獲取Visual Studio 2008 https://www.dreamspark.com/
恕我直言我建議使用Visual Studio 2008,因為Python的官方發行版都是用Visual Studio編譯的,並且是cpython的“官方”Windows編譯器。 http://mail.python.org/pipermail/python-list/2010-April/573606.html
FYI Python 33是使用Visual Studio 2010編譯的。
最后,您可以從這里安裝軟件包: http : //www.lfd.uci.edu/~gohlke/pythonlibs/
我一直在努力解決這個問題,並發現有時pip似乎忽略了MSYS_HOME
並找不到pydistutils.cfg
,在這種情況下,唯一的辦法似乎就是在運行之前手動將pydistutils.cfg
復制到你的virtualenv中pip install
。
如果有人能夠明確地弄清楚為什么它有時會找到這個文件而有時卻找不到,那肯定會很棒。 MinGW中的環境變量似乎過於挑剔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.