1. ホーム
  2. python

[解決済み] Python bz2 モジュールの欠落

2023-08-25 03:55:17

質問

ホームディレクトリにインストールしています。

[spatel@~ dev1]$ /home/spatel/python-2.7.3/bin/python -V
Python 2.7.3

Python 2.7.x バージョンを必要とするスクリプトを実行しようとしているのですが、missing bz2 エラーが発生します。

[spatel@~ dev1]$ ./import_logs.py
Traceback (most recent call last):
  File "./import_logs.py", line 13, in <module>
    import bz2
ImportError: No module named bz2

bz2モジュールをインストールしようとしましたが、多くのエラーが発生しました。

 [spatel@dev1 python-bz2-1.1]$ /home/spatel/python-2.7.3/bin/python setup.py install
    ...
    ...
    ...
    bz2.c:1765: error: âBZ_FINISH_OKâ undeclared (first use in this function)
    bz2.c:1765: warning: comparison between pointer and integer
    bz2.c:1771: error: âPyMemberDefâ has no member named âavail_outâ
    bz2.c:1778: error: âPyMemberDefâ has no member named ânext_outâ
    bz2.c:1778: error: âPyMemberDefâ has no member named âtotal_out_hi32â
    bz2.c:1778: error: âPyMemberDefâ has no member named âtotal_out_lo32â
    bz2.c:1778: error: invalid operands to binary +
    bz2.c:1778: warning: statement with no effect
    bz2.c:1779: error: âPyMemberDefâ has no member named âavail_outâ
    bz2.c:1779: error: âPyMemberDefâ has no member named ânext_outâ
    bz2.c:1779: error: invalid operands to binary -
    bz2.c:1779: error: invalid operands to binary -
    bz2.c:1779: warning: statement with no effect
    bz2.c:1783: error: âPyMemberDefâ has no member named âavail_outâ
    bz2.c:1784: error: âPyMemberDefâ has no member named âtotal_out_hi32â
    bz2.c:1784: error: âPyMemberDefâ has no member named âtotal_out_lo32â
    bz2.c:1784: warning: passing argument 2 of â_PyString_Resizeâ makes integer from pointer without a cast
    error: command 'gcc' failed with exit status 1

どのように解決するのですか?

Pythonをソースからビルドしたため、bz2ヘッダがないのでしょう。

Ubuntu/Debianでインストールします。

sudo apt-get install libbz2-dev

Fedoraです。

sudo yum install bzip2-devel 

そして、pythonを再びビルドします。 Python が設定やビルドの際に多くのライブラリをチェックすることに気づくかもしれませんが、もしそのうちのいくつかを見逃すと、おそらくあなたのケースでは bz2 のようなライブラリのサポートが得られないでしょう。

このようなことを避けるために、プリビルドバイナリを入手すべきです。Ubuntu 12.04 パック python 2.7.3 という、あなたのスクリプトが必要とするバージョンをパックしています。