2009-03-03 98 views
3

RDFLib需要將C擴展編譯爲安裝在ActiveState Python 2.5;據我所知,網上沒有任何明顯的二進制安裝程序。在試圖與python setup.py install安裝,它產生了以下消息:我可以使用VS2005爲使用VS2003構建的Python系統構建擴展

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.

大約有配置編譯器對於討論使用MinGW的的distutils在網絡上variousresources,雖然我還沒有這個工作。作爲替代方案,我有VS2005。

任何人都可以明確告訴我,是否可以在VS2005中使用C編譯器爲VS2003編譯的Python(本例中爲ActiveState Python 2.5)構建Python擴展模塊。如果這是可能的,需要什麼配置?

回答

2

我不能絕對地告訴你,但我不相信你可以。我只在相反的情況下遇到了這個問題(用VS2005構建的Python,試圖用VS2003構建)。搜索網站並沒有任何方法來破解它。我最終的解決方案是獲得VC Express,因爲VC2005是微軟開始發佈免費版本的時候。但這顯然不適合你。

我不使用ActiveState Python,但有沒有更新的版本可以使用?源代碼提供了VS2008的項目文件,我很確定python.org二進制版本不久前使用VS2003停止。

3

主要問題是C運行庫。 Python 2.4/2.5鏈接到msvcr71.dll,因此所有的C擴展都應該鏈接到這個DLL。

另一種選擇是使用gcc(mingw)而不是VS2005,只能用它來編譯python擴展。有體面的安裝程序,允許您配置gcc作爲默認的編譯器爲您的Python版本:

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

0

截至今日2012年3月,我可以斬釘截鐵說,這是可能的Python2.4.4(唯一我測試)和Visual Studio 2005和2008。只需安裝VS10來檢查。我不知道它爲什麼起作用,並且使用distutils時遇到問題,所以我必須手動編譯。