0

Python2.6を実行しているWindowsにビット配列をインストールしたいと思います。

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/theller/bitarray-0.3.5.win32-py2.6.exe

pypi にアップロードできるように、bitarray の作成者にそれらを教えてください。

于 2009-04-23T07:11:03.963 に答える
0

自分で bitarray をビルドする必要があったため (ビット シフトが必要でした)、ビルド済みのバイナリを使用できませんでした。問題は、mingw が __declspec(dllimport) で正しく動作しないことにあります。Python は、declspec の代わりに auto-import を使用することで、cygwin ビルドのこの問題を既に解決しています。ただし、これは mingw ビルドでは有効になりません。したがって、pyport.h の PyAPI_FUNC マクロを変更するか、追加する必要があります。

#define __CYGWIN__

bitarray ソースに。

于 2010-02-21T10:55:46.137 に答える