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

71 投票
2 回答
84631 浏览
提问于 2025-04-16 01:37

我配置了MinGW和distutils,现在我可以使用这个命令来编译扩展:

setup.py install

这时会使用MinGW的gcc编译器,并且包会被安装。为此,我安装了MinGW,并且创建了一个distutils.cfg文件,内容如下:

[build]
compiler = mingw32

这很不错,但我现在想要使用pip的所有好处。有没有办法在pip中使用同样的MinGW的gcc编译器?这样当我运行这个命令:

pip install <package name>

pip就会使用MinGW的gcc编译器,如果需要的话就编译C代码?

目前我遇到这个错误:Unable to find vcvarsall.bat。看起来pip不知道我有gcc编译器。我该如何配置pip来使用gcc编译器呢?

2 个回答

23

虽然配置文件可以解决这个问题,但并不是总能使用。我在命令行安装过程中遇到了同样的问题,无法在所有机器和Python版本上更改配置文件。

这是我的解决办法:

对于mingw32和使用VC++作为默认的包:

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

对于在WinPython上使用Visual C++,它的默认设置是mingw32:

pip install --global-option build_ext --global-option --compiler=msvc <package_zip>
108
  • 安装MinGW,并确保选择了C++编译器的选项
  • C:\MinGW\bin 添加到你的系统环境变量PATH中
  • PYTHONPATH\Lib\distutils 文件夹里,创建一个名为 distutils.cfg 的文件,并添加以下内容:
[build]
compiler=mingw32

撰写回答