Upgrade auf Python 2.7.5 unter Ubuntu 12.04

9

Ubuntu 12.04 python v 2.7.3wird standardmäßig mitgeliefert. Ich möchte es auf aktualisieren v 2.7.5. Ich versuchte , die in Anweisungen dieser Frage ,

sudo apt-get install build-essential
sudo apt-get install libreadline-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

cd ~/Downloads/
wget http://python.org/ftp/python/2.7.5/Python-2.7.5.tgz

tar -xvf Python-2.7.5.tgz
cd Python-2.7.5

./configure
make
sudo make altinstall

Der letzte Befehl schlägt mit dem Fehler fehl:

...
Compiling /usr/local/lib/python2.7/xmlrpclib.py ...
Compiling /usr/local/lib/python2.7/zipfile.py ...
make: *** [libinstall] Error 1

Wie kann ich dieses Upgrade durchführen?

Gabriel
quelle
3
Sind Sie sehr, sehr sicher, dass Sie auf 2.7.5 aktualisieren müssen? Alle Bugfixes werden in Ubuntu auf 2.7.3 zurückportiert. Sie möchten sich wirklich alle Kopfschmerzen beim Kompilieren aus dem Quellcode ersparen. Bitte geben Sie den genauen Grund für die Installation von 2.7.5 an. Auf dieser Website sind Fragen zu einer fehlerhaften Python-Installation alltäglich und es ist sehr häufig festzustellen, dass sie durch die Installation von der Quelle verursacht wird. Siehe zum Beispiel askubuntu.com/q/323248/88802
gertvdijk
1
Ich habe ein Paket falsch verwendet, aber die Frage bleibt bestehen und ich verstehe die Abwertung ohne Erklärung wirklich nicht.
Gabriel
Was passiert , wenn Sie laufen sudo make **install**statt sudo make **altinstall**? Erhalten Sie den gleichen Fehler?
Kevin Bowen
Jetzt habe ich Angst , Ihre Lösung tatsächlich auszuprobieren , da ich so oft gehört habe, dass mein System dadurch beschädigt wird. Ich werde Ihre Antwort als akzeptiert markieren, da sie jedoch wirklich vollständig aussieht. Danke.
Gabriel
2
@ Gabriel Die Lösung von Maggotbrain ist sehr schön; Sie können die Version Ihrer Wahl in einem Pyenv installieren. Dem Python Ihres Systems wird kein Schaden zugefügt. Ich werde mich für zukünftige Fragen daran erinnern. :)
gertvdijk

Antworten:

13

Die Installation von der Quelle aus kann natürlich durchgeführt werden, aber ich würde aus mehreren Gründen zögern, das Python-Paket meiner Ubuntu-Systeme von der Quelle zu aktualisieren:

  1. Dies könnte das System beschädigen, indem eine direkte Kompilierung aus dem Quellcode durchgeführt wird (ich bin nicht genau sicher, wie Ubuntu die Python-Paket-Builds anpasst).

  2. Ich würde mir Sorgen machen, dass es in Zukunft Probleme mit der Verwendung von Modulen aus den Repositorys geben könnte .

Es gibt eine PPA , die aktiv aussieht (der 2.7.x-Zug wurde zuletzt im April dieses Jahres gebaut), aber die PPA hat noch keine 2.7.5-Version. Möglicherweise möchten Sie den Betreuer anpingen und sehen, welche Pläne er für zukünftige Builds hat und ob er einen für 2.7.5 enthalten wird. Wenn möglich, würde ich dies über die Installation von der Quelle empfehlen. Wie bei jeder neuen Software würde ich empfehlen, diese zuerst auf einem Testsystem aufzubauen.

Eine andere Möglichkeit besteht darin, eine Sandbox ( pyenv) zu verwenden, um ein neues, nicht getestetes Softwarepaket auszuführen. Eine direkte Installation auf Ihrem System kann den Betrieb Ihrer Maschine beeinträchtigen.

Mit dem Paket pyenv kann eine Nicht-System-Python-Version auf Ihrer Box installiert werden, ohne dass dies Auswirkungen auf das auf Ihrem Computer installierte Python- Hauptpaket hat (Wiederum: Ihr System ist von der aktuell installierten Python-Version abhängig, und ein Upgrade kann Ihr System beschädigen). Früher wurde Pythonbrew zum Isolieren von Python-Paketen vom System empfohlen, aber das wurde seitdem vom pyenvPaket veraltet und ersetzt .

Das pyenvPaket bietet die folgenden Funktionen:

  • Hiermit können Sie die globale Python-Version auf Benutzerbasis ändern.
  • Bietet Unterstützung für Python-Versionen pro Projekt.
  • Ermöglicht das Überschreiben der Python-Version mit einer Umgebungsvariablen.
  • Suchen Sie nach Befehlen aus mehreren Versionen von Python gleichzeitig.

Installation

  1. Schauen Sie sich pyenv in ~ / .pyenv an.

    git clone git://github.com/yyuu/pyenv.git .pyenv
  2. Fügen Sie Ihrem $ PATH ~ / .pyenv / bin hinzu, um auf das Befehlszeilenprogramm pyenv zuzugreifen.

    echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bash_profile

    Zsh Hinweis: Ändern Sie Ihre ~/.zshenvDatei anstelle von ~/.bash_profile.

  3. Fügen Sie Ihrer Shell pyenv init hinzu, um Shims und die automatische Vervollständigung zu aktivieren.

    echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

    Zsh Hinweis: Ändern Sie Ihre ~/.zshenvDatei anstelle von ~/.bash_profile.

  4. Starten Sie Ihre Shell neu, damit die Pfadänderungen wirksam werden. Sie können jetzt mit pyenv beginnen.

    exec $SHELL
  5. Installieren Sie Python-Versionen in ~ / .pyenv / version. Um beispielsweise Python 2.7.5 zu installieren, laden Sie die Quelle herunter und entpacken Sie sie. Führen Sie dann Folgendes aus:

    pyenv install 2.7.5

    HINWEIS Wenn Sie Konfigurationsoptionen zum Erstellen aus dem Quellcode übergeben müssen, verwenden Sie die Umgebungsvariable CONFIGURE_OPTS.

  6. Erstellen Sie die Shim-Binärdateien neu. Sie sollten dies jedes Mal tun, wenn Sie eine neue Python-Binärdatei installieren (z. B. wenn Sie eine neue Python-Version installieren oder wenn Sie ein Paket installieren, das eine Binärdatei bereitstellt).

    pyenv rehash
Kevin Bowen
quelle
1
pyenvist aus so vielen Gründen brillant. Hilft mir beim Experimentieren immens mit minimalem Aufwand nach der Ersteinrichtung.
Fahad Yousuf
Wird dies aus dem homeOrdner eines bestimmten Benutzers ausgeführt ? Wie kann ich das für jeden Benutzer installieren? Kann ich installieren ./pyenvin /usr/local/binoder ist das eine schlechte Idee?
Biohazard