EDIT: Wenn Sie diese Frage zu einem Duplikat abstimmen, bitte nehmen Sie sich zumindest die Zeit, die Frage zu lesen, anstatt sie nur doppelt zu markieren, da sie einer anderen Frage ähnelt . Wenn Sie das getan hätten, würden Sie sofort erkennen, dass es kein Duplikat ist. Ich versuche nur, einen größeren Zusammenhang zu zeigen.virtualenv mit Python-Interpreter neuer als systemweiter Interpreter
Meine Distribution verwendet immer noch Python 2.6 als Python-Interpreter. Jetzt möchte ich ein Modul verwenden, das Python 2.7 benötigt. Ich habe Python 2.7 installiert, aber es würde andere Anwendungen beschädigen. Also habe ich eine virtuelle Umgebung mit Python 2.7 als Dolmetscher up:
virtualenv -p ~/pkg/bin/python2.7 venv
Wenn ich die virtuelle Umgebung und führen Python die neue Interpreter aktivieren verwendet. Gut! Jetzt muss ich import
Module, z.
Dies funktioniert global (d. H. In Python 2.6), aber nicht in meiner virtuellen Umgebung (d. H. In Python 2.7). Ich versuchte, die sys.path
das gleiche für die virtuelle Umgebung zu setzen, aber das würde mir Fehler wie
ImportError: /usr/lib64/python2.6/site-packages/gtk-2.0/glib/_glib.so: undefined symbol: PyUnicodeUCS4_DecodeUTF8
, die etwas zu erwarten ist.
Eine Suche mit
pip search gtk
würden keine Ergebnisse entweder nicht führen. Meine beste Vermutung ist, dass ich gtk aus der Quelle installieren und gegen Python 2.7 kompilieren muss. Dies zieht jedoch andere Abhängigkeiten in sich und wenn ich dieses Loch für ungefähr 7 oder 8 Schritte hinuntergehe, habe ich resigniert.
Gibt es eine einfachere Möglichkeit, dieses Problem zu lösen?
Mögliches Duplikat von [versucht, ein Modul zu importieren: undefiniertes Symbol: PyUnicodeUCS4 \ _ DecodeUTF8] (http://stackoverflow.com/questions/16871799/trying-to-import-a-module-undefined-symbol-pyunicodeucs4-decodeutf8) – snakecharmerb
@snakecharmerb nicht das. Und pfnuesel: Nein, Sie können Python 2.6 C-Erweiterungen in Python 2.7 überhaupt nicht verwenden. Stattdessen: erwägen Sie, Ihr Betriebssystem zu aktualisieren, so dass Sie 2.7 * oder noch besser ein anständiges Python 3 erhalten. –
@AnttiHaapala Ja, das macht Sinn für mich. Upgraden, bei gutem Rat, ist leider nicht möglich, da dies unser Server-Betriebssystem ist, das auf mehreren tausend Servern läuft. – pfnuesel