2010-07-21 213 views
56

我配置MinGW和的distutils所以現在我可以使用此命令編譯擴展:如何在使用Pip安裝Python包時使用MinGW的gcc編譯器?

setup.py install 

MinGW的的gcc編譯將被使用,包將被安裝。對於我安裝了以下內容MinGW和created distutils.cfg文件:

[build] 
compiler = mingw32 

這很酷,但現在我想使用的所有點子的好處。有沒有辦法在pip中使用相同的MinGW的gcc編譯器?所以,當我運行此:

pip install <package name> 

PIP將使用MinGW的的gcc編譯器,如果需要編譯的C代碼?

目前我收到此錯誤:Unable to find vcvarsall.bat。似乎pip不知道我有gcc編譯器。我如何配置pip以使用gcc編譯器?

+2

另一個提示:確保該文件被稱爲* distutils.cfg *而不是* distutils.cfg.txt *。有時Windows在創建新文本文件時喜歡添加* .txt *擴展名。 – sffc 2015-06-18 21:31:55

回答

4

也許你沒有把distutils.cfg放在正確的位置?我解決了同樣的問題,在c:\ Documents and Settings \ myuser中創建一個名爲pydistutils.cfg的文件,其內容與您的相同。我這樣做,它的工作。 HTH

+0

感謝您的建議,但我不再做這個東西了:) – demalexx 2011-01-25 12:23:53

+3

我把'[build] compiler = mingw32'的pydistutils.cfg文件放在我的msys $ HOME目錄下(c:\ mingw \ msys \ 1.0 \ home \ ),然後我從我的msys shell中調用pip。對於我來說,在virtualenvs中都可以正常工作。 @Paolo,它是有道理的,如果你使用CMD shell,那麼你會把它放在%USERPROFILE%這是Windows的HOME。 – 2012-08-13 04:48:00

88
  • 與C++編譯器選項安裝MinGW的檢查
  • 添加C:\MinGW\bin到PATH
  • PYTHONPATH\Lib\distutils,創建一個文件distutils.cfg,並添加這些行:即使

[build] compiler=mingw32

+2

創建distutils.cfg文件是爲我解決了這個問題 - 我試圖用pip安裝一個包,並且遇到了「無法找到vcvarsall.bat」錯誤。謝謝。 – 2011-11-09 17:03:37

+13

請記住,如果您使用虛擬環境,則應該在virtualenv中更改此python。 – markijbema 2011-12-01 21:52:34

+5

謝謝。仍然乏味。如果只有Pip有一個'--compiler'選項https:// github。com/pypa/pip/issues/18請在 – 2012-08-16 00:01:10

14

配置文件解決了這個問題,它並不總是一個選項。我在我的命令行安裝過程中遇到了同樣的問題,我無法更改所有機器和python分發版上的配置文件。

這是我的解決方案:

對於mingw32的和包,使用VC++爲默認:

pip install --global-option build_ext --global-option --compiler=mingw32 <package_zip> 

對於的Visual C++上WinPython,它使用的mingw32默認:

pip install --global-option build_ext --global-option --compiler=msvc <package_zip> 
相關問題