我需要什么版本的Visual Studio和/或MinGW来为给定版本的Python构建扩展模块?

时间:2012-08-19 18:07:10

标签: python c windows visual-studio build

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

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

3 个答案:

答案 0 :(得分:9)

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版本。

答案 1 :(得分:3)

据推测,您所说的是要求构建Python扩展以与Python实例所执行的相同C运行时库动态链接。首先要注意的是,这取决于实例的构建方式,即,如果您自己从源代码构建Python,那么它是您用于构建的编译器版本,而不是Python的版本,它决定了正在使用的运行时库

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

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

答案 2 :(得分:2)

如果有人在2020年对此仍然感兴趣:我发现此(更新)页面列出了每个CPython版本使用的Visual C ++编译器版本(以及包括它们的Visual Studio版本):

https://wiki.python.org/moin/WindowsCompilers