如何在使用Pip安装Python包时使用MinGW的gcc编译器?

问题描述:

我配置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

也许你没有把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

  • 与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

配置文件解决了这个问题,它并不总是一个选项。我在我的命令行安装过程中遇到了同样的问题,我无法更改所有机器和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>