在 Windows 上的 Python 2.6 中安装 bitarray
我想在运行 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
有人可以帮忙吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
MingW 无法编译位数组源,我尝试使用版本 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/theller/bitarray-0.3.5.win32-py2。 6.exe
请将bitarray作者指向它们,以便他可以将它们上传到pypi。
MingW cannot compile the bitarray sources, I tried with version 3.4.5 and get the same errors.
However, it compiles fine with the Microsoft compiler.
For your convenience I've build msi and exe installers for 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
Please point the bitarray author to them so that he can upload them to pypi.
我需要为自己构建位数组(我需要位移位),所以我无法使用您预先构建的二进制文件。 问题在于 mingw 无法与 __declspec(dllimport) 正常工作。 Python 已经通过使用自动导入而不是 declspec 解决了 cygwin 构建的这个问题。 然而,这对于 mingw 构建来说是不启用的。 因此,您需要修改 pyport.h 中的 PyAPI_FUNC 宏或添加
到位数组源。
I needed to build bitarray for myself (I needed bit shift), so I couldn't use your pre-built binaries. The problem lies in mingw not working properly with __declspec(dllimport). Python already solves this problem for cygwin builds by using auto-import instead of declspec. However, this is not enabled for mingw builds. So you either need to modify the PyAPI_FUNC macro in pyport.h or add
to the bitarray sources.