Das bz2-Modul von Python ist nicht standardmäßig kompiliert

Lesezeit: 2 Minuten

Benutzer-Avatar
Piotr Byzia

Es scheint, dass Python 2.6.1 die bz2-Bibliothek nicht standardmäßig aus der Quelle kompiliert.

Ich habe lib-dynload/bz2.so nicht

Was ist der schnellste Weg, es hinzuzufügen (ohne Python von Grund auf neu zu installieren)?

Das Betriebssystem ist Linux 2.4.32-grsec+f6b+gr217+nfs+a32+fuse23+tg+++opt+c8+gr2b-v6.194 #1 SMP Di 6. Juni 15:52:09 PDT 2006 i686 GNU/Linux

IIRC Ich habe nur das Flag –prefix verwendet.

  • mögliches Duplikat von ImportError: Kein Modul namens bz2 für Python 2.7.2

    – Abizern

    13. August 2012 um 8:53 Uhr

Benutzer-Avatar
Alex Martell

Sie müssen zuerst libbz2.so (die universelle libbz2-Bibliothek) richtig installieren, damit Python seine eigene Schnittstelle dazu erstellen kann. Das wäre normalerweise aus einem Paket in Ihrer Linux-Distribution, das wahrscheinlich “libbz2” und “dev” im Paketnamen enthält.

  • bzip2 und bzip2-devel wenn Sie Yum auf einer Distribution wie Centos verwenden.

    – Fosko

    29. August 2011 um 2:29 Uhr

  • Das Debian-Paket heißt: libbz2-dev

    – pdoherty926

    25. Februar 2019 um 15:37 Uhr

Verwenden Sie die Paketverwaltung Ihres Anbieters, um das Paket hinzuzufügen, das die Entwicklungsdateien für bz2 enthält. Es ist normalerweise ein Paket namens “libbz2-dev”. ZB auf Ubuntu

sudo apt-get install libbz2-dev

Benutzer-Avatar
Richard Gomes

Es gibt 2 Lösungen für dieses Problem:

Option 1. Installieren Sie bzip2-devel

Unter Debian und Derivaten können Sie dies einfach so installieren:

sudo apt-get install bzip2-devel

Option 2. Erstellen und installieren Sie bzip2

In der README-Datei von bzip2-Paketwird erklärt, dass Sie unter bestimmten Plattformen, nämlich solchen, die Linux-ELF-Binärdateien verwenden, eine zusätzliche gemeinsam genutzte Objektdatei wie unten gezeigt erstellen müssen:

wget http://bzip.org/1.0.6/bzip2-1.0.6.tar.gz
tar xpzf bzip2-1.0.6.tar.gz
cd bzip2-1.0.6
make
make -f Makefile-libbz2_so
make install PREFIX=/path/to/local # /usr/local by default

Das kritische Bit hier ist der folgende Befehl:

make -f Makefile-libbz2_so

Ich habe dies getan und danach versucht, Python erneut zu erstellen, wie unten gezeigt:

cd Python-2.7.3
./configure --prefix=/path/to/local 
make install

  • Die Readme sagt make -f Makefile-libbz2_so statt make -f Makefile_libbz2_so

    – mr2ert

    28. Juni 2013 um 23:10 Uhr

  • Paket bzip2-devel (squeeze) kann nicht gefunden werden

    – Chovy

    13. August 2013 um 7:41 Uhr

  • @chovy: “apt-cache search bzip | fgrep dev”. Sie können “libbz2-dev” versuchen.

    – Richard Gomes

    24. August 2013 um 14:22 Uhr


  • Hier ist ein Fehler, wenn Sie ausgeführt haben makees ist notwendig zu laufen make clean vor dem Versuch make -f Makefile-libbz2_so.

    – shuckc

    24. August 2015 um 17:08 Uhr

  • @hlin117 -fPIC ist ein Flag für den Compiler, keine Option für make. Sie müssen es wie folgt als Umgebungsvariable übergeben: make -f Makefile-libbz2_so CFLAGS="-fPIC"

    – bli

    8. Februar 2017 um 14:34 Uhr

Wenn Sie zufällig versuchen, Python auf RHEL5 zu kompilieren, wird das Paket aufgerufen bzip2-develund wenn Sie RHN eingerichtet haben, kann es mit diesem Befehl installiert werden:

yum installiere bzip2-devel

Sobald das erledigt ist, brauchen Sie keine der Optionen –enable-bz2 oder –with-bz2, aber Sie brauchen vielleicht –enable-shared.

1372780cookie-checkDas bz2-Modul von Python ist nicht standardmäßig kompiliert

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy