0

我想在运行 python 2.6 的 Windows 中安装bitarray

我已经安装了 mingw32,并且我已经C:\Python26\Lib\distutils\distutils.cfg设置为:

[build]
compiler = mingw32

如果我输入,在一个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

任何人都可以帮忙吗?

4

2 回答 2

3

MingW 无法编译 bitarray 源,我尝试使用 3.4.5 版本并得到相同的错误。但是,它可以与 Microsoft 编译器一起正常编译。

为了您的方便,我为 Python 2.6 构建了 msi 和 exe 安装程序:

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

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

请将位数组作者指向它们,以便他可以将它们上传到 pypi。

于 2009-04-23T07:11:03.963 回答
0

我需要为自己构建 bitarray(我需要移位),所以我不能使用你预先构建的二进制文件。问题在于 mingw 无法与 __declspec(dllimport) 一起正常工作。Python 已经通过使用自动导入而不是 declspec 为 cygwin 构建解决了这个问题。但是,对于 mingw 构建没有启用此功能。因此,您要么需要修改 pyport.h 中的 PyAPI_FUNC 宏,要么添加

#define __CYGWIN__

到位阵列源。

于 2010-02-21T10:55:46.137 回答