我可以使用VS2005为使用VS2003构建的Python系统构建扩展

时间:2009-03-03 14:53:16

标签: python visual-studio-2005 visual-studio-2003 distutils

RDFLib需要编译C扩展以在ActiveState Python 2.5上安装;据我所知,网上没有明显的二进制安装程序。尝试使用python setup.py install进行安装时,会产生以下消息:

error: Python was built with Visual Studio 2003;
extensions must be built with a compiler than can generate compatible binaries.
Visual Studio 2003 was not found on this system. If you have Cygwin installed,
you can try compiling with MingW32, by passing "-c mingw32" to setup.py.

网上有various resources关于为使用MinGW讨论的distutils配置编译器,虽然我还没有这个工作。作为替代方案,我有VS2005。

任何人都可以断然告诉我是否可以使用VS2005中的C编译器为VS2003编译的Python(在本例中为ActiveState Python 2.5)构建Python扩展模块。如果可以,需要什么配置?

3 个答案:

答案 0 :(得分:3)

主要问题是C运行时库。 Python 2.4 / 2.5链接到msvcr71.dll,因此所有C扩展都应链接到这个dll。

另一个选择是使用gcc(mingw)而不是VS2005,你可以用它来编译python扩展。有一个不错的安装程序,允许您将gcc配置为Python版本的默认编译器:

http://www.develer.com/oss/GccWinBinaries

答案 1 :(得分:2)

我不能断然告诉你,但我不相信你能。我只是在相反的情况下遇到这个问题(用VS2005构建的Python,试图用VS2003构建)。搜索网络并没有任何方式来破解它。我最终的解决方案是获得VC Express,因为VC2005是微软开始发布免费版本的时候。但这显然不适合你。

我不使用ActiveState Python,但是你可以使用更新的版本吗?源代码附带VS2008的项目文件,我很确定python.org二进制版本在不久前使用VS2003停止了。

答案 2 :(得分:0)

截至今天的2012年3月,我可以明确地说可以使用Python2.4.4(我测试过的只有一个)和Visual Studio 2005和2008.只需安装VS10来检查。我不知道为什么它有效,我在使用distutils时遇到问题所以我必须手动编译。