簡體   English   中英

python - 獲取Pip在Windows上使用MinGW32?

[英]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 cythonpip 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM