在 Windows 上的 Python 2.6 中安装 bitarray

发布于 2024-07-17 12:33:28 字数 1501 浏览 7 评论 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

有人可以帮忙吗?

I would like to install bitarray in Windows running python 2.6.

I have mingw32 installed, and I have C:\Python26\Lib\distutils\distutils.cfg set to:

[build]
compiler = mingw32

If I type, in a cmd.exe window:

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

I get:

[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

Can anyone help?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我的鱼塘能养鲲 2024-07-24 12:33:28

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.

旧人九事 2024-07-24 12:33:28

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

#define __CYGWIN__

到位数组源。

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

#define __CYGWIN__

to the bitarray sources.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文