2009-04-23 145 views
0

我想在運行python 2.6的Windows中安裝​​。在Windows 2.6的Python 2.6中安裝bitarray

我已經MINGW32安裝,和我有C:\Python26\Lib\distutils\distutils.cfg設置爲:

[build] 
compiler = mingw32 

如果I型,在cmd.exe窗口:

C:\Documents and Settings\john\My Documents\bitarray-0.3.5>python setup.py install 

我得到:

[normal python messages skipped] 
C:\MinGW\bin\gcc.exe -mno-cygwin -mdll -O -Wall -IC:\Python26\include -IC:\Python26\PC -c bitarray/_bitarray.c -o build\temp.win32-2.6\Release\bitarray\_bitarray.o 
bitarray/_bitarray.c:2197: error: initializer element is not constant 
bitarray/_bitarray.c:2197: error: (near initialization for `BitarrayIter_Type.tp_getattro') 
bitarray/_bitarray.c:2206: error: initializer element is not constant 
bitarray/_bitarray.c:2206: error: (near initialization for `BitarrayIter_Type.tp_iter') 
bitarray/_bitarray.c:2232: error: initializer element is not constant 
bitarray/_bitarray.c:2232: error: (near initialization for `Bitarraytype.tp_getattro') 
bitarray/_bitarray.c:2253: error: initializer element is not constant 
bitarray/_bitarray.c:2253: error: (near initialization for `Bitarraytype.tp_alloc') 
bitarray/_bitarray.c:2255: error: initializer element is not constant 
bitarray/_bitarray.c:2255: error: (near initialization for `Bitarraytype.tp_free') 
error: command 'gcc' failed with exit status 1 

燦有人幫忙嗎?

回答

3

MingW無法編譯bitarray源代碼,我嘗試使用3.4.5版本並獲得相同的錯誤。 但是,它使用Microsoft編譯器編譯得很好。

爲了您的方便我已經建立MSI和EXE安裝程序爲Python 2.6:

http://starship.python.net/crew/theller/bitarray-0.3.5.win32-py2.6.msi

http://starship.python.net/crew/theller/bitarray-0.3.5.win32-py2.6.exe

請點bitarray筆者給他們,讓他可以上傳他們的PyPI。

+0

非常感謝! – 2009-04-23 22:17:58

0

我需要爲自己構建bitarray(我需要位移),所以我無法使用預先構建的二進制文件。問題在於mingw無法正確使用__declspec(dllimport)。 Python已經通過使用自動導入而不是declspec解決了cygwin構建的這個問題。但是,這不是爲mingw構建啓用的。因此,您需要修改pyport.h中的PyAPI_FUNC宏或將

#define __CYGWIN__ 

添加到bitarray源文件中。