Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为Windows构建Python C扩展模块_Python_Windows - Fatal编程技术网

为Windows构建Python C扩展模块

为Windows构建Python C扩展模块,python,windows,Python,Windows,我有一个C扩展模块,分发构建的二进制文件会很好。Setuptools使在OSX和GNU/Linux上构建扩展模块变得很容易,因为这些OSs附带了GCC,但我不知道如何在Windows中实现 我需要购买Visual Studio的副本,还是Visual Studio Express可以工作?我可以使用Cygwin或MinGW吗?您可以同时使用MinGW和VC++Express(免费,无需购买) 见: Setuptools和distutil不随gcc提供,但它们使用与Python构建时使用的相同

我有一个C扩展模块,分发构建的二进制文件会很好。Setuptools使在OSX和GNU/Linux上构建扩展模块变得很容易,因为这些OSs附带了GCC,但我不知道如何在Windows中实现


我需要购买Visual Studio的副本,还是Visual Studio Express可以工作?我可以使用Cygwin或MinGW吗?

您可以同时使用MinGW和VC++Express(免费,无需购买)

见:


  • Setuptools和distutil不随gcc提供,但它们使用与Python构建时使用的相同的编译器。区别主要在于,在典型的UNIX系统上,编译器是“gcc”,并且您已经安装了它


    为了在Windows上编译扩展模块,您需要Windows编译器。MSV也可以,即使是我相信的Express版本,但它必须与Python构建时使用的MSVC++版本相同。或者你可以使用Cygwin或MinGW;请参阅的相应部分。

    谢谢。您使用mingw编译扩展的指南非常有效。嘿,我只是想让您知道,我在#1下遵循了您的指南(使用本文脚注1中提供的setup.py和hellomodule.c文件),一切都很顺利。我使用的是WindowsXP32位、Python2.6和MingW4.5.0。我不必去搞那些.a/.dll之类的东西。谢谢还有一个问题。我们在哪里可以找到哪个版本的VC++用于构建特定版本的Python?使用同一版本的VC++有多重要?我很惊讶你不能使用VS2005或更高版本,但你可以使用MinGW(一个完全不同的编译器!)…这只是一个建议。我一直在使用同一个VS2013编译器为所有Python版本2.7到3.6创建PYDs,从未发现任何问题。