为Windows编写Python C扩展模块的构建方法

12

我有一个C扩展模块,希望能够方便地分发编译后的二进制文件。在OS X和GNU/Linux上,由于这些操作系统带有GCC,使用Setuptools构建扩展模块非常容易,但我不知道如何在Windows上操作。

我需要购买Visual Studio的副本吗?还是Visual Studio Express可以使用?我能否只使用Cygwin或MinGW?

2个回答

16

谢谢。您的指南使用mingw编译扩展程序完美运行。 - Will Harris
嘿,只是想让你知道,我按照你在#1下提供的指南(使用脚注1中提供的setup.py和hellomodule.c文件)做了一切,一切都很顺利。我使用的是Windows XP 32位、Python 2.6和MinGW 4.5.0。我不需要去纠缠那些.a/.dll文件之类的东西。谢谢! - oob
还有这个参考链接 - Craig McQueen
我们在哪里可以找到用于构建特定版本Python的VC++版本?使用相同版本的VC++有多重要? - Craig McQueen

3

Setuptools和distutils并不带有gcc,但它们使用与Python构建时相同的编译器。区别在于,在典型的UNIX系统上,该编译器为'gcc',并已安装好。

在Windows上编译扩展模块,您需要一个适用于Windows的编译器。MSVS将会做到这一点,即使是Express版本,但它必须是与Python构建时使用的同一MSVC++版本。或者您可以使用Cygwin或MinGW;请参阅安装Python模块的相应部分。


2
我感到困惑的是,你不能使用VS 2005或更新版本,但可以使用MinGW(完全不同的编译器!)... - Roman Plášil
1
这只是一个建议。我一直在为所有Python版本2.7到3.6创建PYD,并使用相同的VS 2013编译器,从未遇到过问题。 - Jorj McKie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接