Wie wollen Sie weisen bz2 zu einem altinstall von python?
Ich bin mit redhat 5.8, die kommt mit python 2.4 installiert sich automatisch, aber ich bin mit einem python-Paket, das benötigt python 2.6 oder höher. SO, ich installierte python 2.7 2.4 neben, so dass Sie sich nicht auf die system-version.
Nun, ich bin versucht zu installieren, ein Paket durch pip, und die folgende Fehlermeldung erhalten:
CompressionError: bz2 module is not available
Ich tun, jedoch haben Sie das Modul auf meinem Rechner, als nachgewiesen, wenn ich dies in der server-version gibt:
[~]$ python -c "import bz2; print bz2.__doc__"
The python bz2 module provides a comprehensive interface for
the bz2 compression library. It implements a complete file
interface, one shot (de)compression functions, and types for
sequential (de)compression.
und die 2.7 installieren, Fehler in dieser Art:
[~]$ python2.7 -c "import bz2; print bz2.__doc__"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named bz2
So, ich habe gelesen, diese Fragen:
Bereits installiert und diese sehr gut, aber keiner von Ihnen scheinen ganz auf die Marke. Im ersten Fall, der Rat ist, installieren Sie das fehlende Stück, und die zweite Frage ist zu entfernen (oder stop referenzieren) der extra python installieren.
Was ich tun möchte, ist in einem symlink oder so, so dass die python 2.7 installieren, die weiß, wo bz2 ist so, dass ich pip zum installieren von python-package.
Dank,
B
EDIT: mehr Informationen
So, nach viel Forschung, es scheint, dass die Art und Weise der Pfad-Variablen festgelegt dramatisch verändert in python 2.5 (wahrscheinlich der Grund, warum red hat noch nicht aktualisiert).
So, in python 2.7, die Sie hinzufügen können, um die PYTHONPATH-variable durch hinzufügen einer Datei mit dem .pth-Erweiterung in diesem Ordner:
/usr/local/lib/python2.7/site-packages/
Habe ich versucht 2 Möglichkeiten, um dieses zu erhalten, um richtig zu arbeiten.
Zuerst habe ich einfach die fed eine Reihe von python 2.4 Pfad-Dateien zu 2.7. Dies verursacht einen Fehler, der einen anderen Typ:
[~]$ python2.7 -c "import bz2; print bz2.__doc__"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: /usr/lib64/python2.4/lib-dynload/bz2.so: undefined symbol: Py_InitModule4
Also, das ist etwas.
Ich habe auch versucht, weist den Weg zum libbz2.so Datei in /usr/lib/was führte zu dem bekannten Fehler:
[~]$ python2.7 -c "import bz2; print bz2.__doc__"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named bz2
Ich bin immer noch überfragt, aber ich fühle mich wie ich bin schließen in.
Ich könnte wirklich ein bisschen input von jemandem mit mehr Erfahrung einrichten der Entwicklungsumgebungen. Ich bin viel wohler, nur code schreiben 🙂
- Der erste ist der richtig fix. Ihre Korrektur ist in der Tat nicht jede Art von fix, da es verwendet eine ganz andere version von der Python-Bibliothek.
- Das erste, was ist richtig? Die erste Antwort?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe gerade gestern auf der gleichen Plattform und haben es zu arbeiten. Hier ist, was ich getan habe:
Set
CFLAGS="-I/path/to/bz2/include"
undLDFLAGS="-L/path/to/bz2/lib"
. Stellen Sie sicher, dass die bz2-Bibliothekspfad wird festgelegt, in IhreLD_LIBRARY_PATH
. Müssen Sie wahrscheinlich zu tun einemake distclean
undconfigure && make && make install
, obwohl.Wenn das fehlschlägt, direkt Bearbeiten setup.py und ein Austausch der folgenden ähnelt:
Beachten Sie den auskommentierten Teil am Ende der zweiten Zeile ist der rest der ursprünglichen setup.py line.
Also, ich fand Sie einfach herunterladen und erstellen Sie die neueste version von bz2 und zeigen alle der oben genannten zu, die einfacher als zu versuchen, um das system installierte version zu arbeiten.
Unabhängig, das funktioniert auf jeden Fall. Ich habe es gestern 🙂
stackoverflow.com/questions/23548188/how-do-i-compile-python-3-4-with-custom-openssl
Jedes mal, wenn Sie arbeiten mit einem python-andere als die Systempartition installiert ist, empfehle ich die Verwendung http://pypi.python.org/pypi/virtualenv. Es wird eine "sandbox" für Sie mit Ihrer eigenen Kopie von python und nimmt alle Wege, etc. auf den neuen kopieren. Sie können dann mit pip installieren, was auch immer Pakete, die Sie benötigen.
Den anderen Antworten, die sind nützlich und hilfreich, aber dies ist, wie ich diese zu arbeiten.
Nicht das problem, dass Python nicht finden, die Dateien (wie ich dachte), es konnte einfach nicht, Sie richtig zu verwenden. So, ich vi ' ed in das Makefile für bzip2, fand die Zeile, die wie folgt aussah:
Hinzugefügt und -fPIC, um die Zeile in etwa so:
und WHALA! Es kompiliert einwandfrei.