为Windows构建Python C扩展模块

13 投票
2 回答
10339 浏览
提问于 2025-04-11 09:19

我有一个C语言的扩展模块,想把编译好的文件分发出去。使用Setuptools在OS X和GNU/Linux上构建扩展模块很简单,因为这些系统自带GCC编译器,但我不知道在Windows上该怎么做。

我需要购买Visual Studio吗,还是说Visual Studio Express就可以?我能不能直接用Cygwin或者MinGW呢?

2 个回答

4

Setuptools和distutils并不自带gcc这个编译器,但它们使用的是和Python本身构建时相同的编译器。主要的区别在于,通常在UNIX系统上,这个编译器是'gcc',而你应该已经安装了它。

如果你想在Windows上编译扩展模块,你需要一个适合Windows的编译器。MSVS(微软的Visual Studio)就可以用,连免费的Express版本也可以,但要确保它的MSVC++版本和Python构建时用的是同一个版本。你也可以使用Cygwin或MinGW;具体可以参考安装Python模块的相关部分。

16

你可以同时使用MinGW和VC++ Express(这是免费的,不用花钱买)。

可以参考以下链接:

  1. http://eli.thegreenplace.net/2008/06/28/compiling-python-extensions-with-distutils-and-mingw/
  2. http://eli.thegreenplace.net/2008/06/27/creating-python-extension-modules-in-c/

撰写回答