我需要为给定版本的Python构build扩展模块的哪个版本的Visual Studio和/或MinGW?

以不同的方式提出这个问题,什么版本的Visual C ++是Python的python.org构build的每个官方的Python版本,哪些版本的MinGW与这些版本的Visual C ++兼容?

这些信息是否可以在某些网站上获得?

Python 2.6,2.7,3.1和3.2都是用VS 2008编译的。Python 3.3和3.4是用VS 2010编译的。

我不确定MinGW的兼容性。

如果您正在寻找命令行编译器,Microsoft已经发布了Windows 7的两个不同的SDK,包括命令行编译器。 第一个SDK(用于.NET 3.5)包括VS 2008编译器。 第二个SDK(.NET 4.0)包含VS 2010编译器。

更新:每个Python版本的源代码发行版中的文件PCbuild\readme.txt包括用于制作二进制文件的Visual Studio版本。

据推测,你正在讨论的一个要求是,Python扩展可以与Python实例所做的相同的C运行时库动态链接。 首先应该注意的是,这取决于实例是如何构建的,也就是说,如果从源代码自己构建Python,那么它就是用于构建的编译器版本,而不是Python的版本,它决定了正在使用的运行时库。

如果您想了解官方二进制版本的运行时库版本,您可以使用您最喜欢的DLL依赖项工具(例如Dependency Walker )或通过查看安装程序中包含哪些运行时库可再发行组件来解决这个问题。

基于我非常简短的研究,我相信你可以使用任何这些运行时库的最新版本的MinGW。 默认情况下,它使用msvcrt.dll,Windows内置的C运行库,但它似乎支持使用VC ++运行时。