Wenn ich auf ähnliche Situationen gestoßen bin, vermeide ich im Allgemeinen den Paketmanager, insbesondere wenn es peinlich wäre, etwas zu beschädigen, dh einen Produktionsserver. Stattdessen würde ich zu Activestate gehen und ihr Binärpaket herunterladen:
https://www.activestate.com/activepython/downloads/
Dies wird installiert, indem ein Skript ausgeführt wird, das alles in einem Ordner ablegt und keine Systemdateien berührt. Tatsächlich benötigen Sie nicht einmal Root-Berechtigungen, um es einzurichten. Dann ändere ich den Namen der Binärdatei in apy26, füge diesen Ordner am Ende des PFADS hinzu und beginne mit der Codierung. Wenn Sie Pakete mit apy26 setup.py install
virtualenv und easyinstall installieren oder verwenden, verfügen Sie über eine ebenso flexible Python-Umgebung wie erforderlich, ohne die Systemstandard-Python zu berühren.
Änderungen ... Vor kurzem habe ich einige Arbeiten durchgeführt, um eine tragbare Python-Binärdatei für Linux zu erstellen, die auf jeder Distribution ohne externe Abhängigkeiten ausgeführt werden sollte. Dies bedeutet, dass alle vom tragbaren Python-Modul benötigten binären gemeinsam genutzten Bibliotheken Teil des Builds sind, im Tarball enthalten und in der privaten Verzeichnisstruktur von Python installiert sind. Auf diese Weise können Sie Python für Ihre Anwendung installieren, ohne das vom System installierte Python zu beeinträchtigen.
Meine Github-Site verfügt über ein Build-Skript, das unter 32- und 64-Bit-Installationen von Ubuntu Lucid 10.04 LTS gründlich getestet wurde. Ich habe es auch auf Debian Etch aufgebaut, aber das ist eine Weile her und ich kann nicht garantieren, dass ich nichts geändert habe. Der einfachste Weg, dies zu tun, besteht darin, einfach Ubuntu Lucid Ihrer Wahl in eine virtuelle Maschine zu stecken, das Skript mit auszuchecken git clone git://github.com/wavetossed/pybuild.git
und dann das Skript auszuführen.
Sobald Sie es erstellt haben, verwenden Sie den Tarball in jeder aktuellen Linux-Distribution. Es gibt eine kleine Falte beim Verschieben in ein anderes Verzeichnis als /data1/packages/python272
das, dass Sie das enthaltene ausführen müssen patchelf
, um den Interpreterpfad festzulegen, bevor Sie das Verzeichnis verschieben. Dies betrifft alle Binärdateien in/data1/packages/python272/bin
All dies basiert auf dem Erstellen mit RUNPATH und dem Kopieren der abhängigen gemeinsam genutzten Bibliotheken. Obwohl sich das Skript in mehreren Dateien befindet, handelt es sich effektiv um ein langes Shell-Skript, das im Stil von /etc/rc.d-Verzeichnissen angeordnet ist.