Wie aktualisiere ich Python?


135

Ich habe Version 2.7 ab Anfang 2012 installiert. Ich kann keinen Konsens darüber finden, ob ich diese Version vollständig deinstallieren und löschen sollte, bevor ich die neueste Version einsetze.

"Soft" -Entfernen alter Versionen? Alte Versionen hart entfernen / abwischen? Over-Installation installieren?

Ich habe irgendwo einen speziellen Installations- / Upgrade-Prozess gesehen, der eine "Segmentierungs" -Methode von Python-Installationen verwendet, bei der verschiedene Versionen getrennt und getrennt, aber funktionsfähig bleiben. Ich bin mir nicht sicher, ob dies de facto der Standard ist.

Ich frage mich auch, ob Revo zu übereifrig wird und Probleme beim Löschen noch benötigter Überreste wie Umgebungs- / PATH-Variablen verursachen kann.

(Win7 x64, 32-Bit-Python)


1
2.7 ist immer noch die neueste Version - jedenfalls in der 2.x-Serie. 3.x ist abwärtskompatibel. Wenn Sie auf die aktuelle Version 2.7 aktualisieren möchten, würde ich einfach über installieren.
Eevee

Antworten:


106
AKTUALISIEREN : 2018-07-06

Dieser Beitrag ist jetzt fast 5 Jahre alt! Python-2.7 wird 2020 keine offiziellen Updates mehr von python.org erhalten . Außerdem wurde Python-3.7 veröffentlicht . In Python-Future erfahren Sie, wie Sie Ihren Python-2-Code mit Python-3 kompatibel machen. Für die Aktualisierung von conda wird in der Dokumentation jetzt die Verwendung empfohlenconda update --all in jeder Ihrer conda-Umgebungen alle Pakete und die für diese Version ausführbare Python-Datei zu aktualisieren. Da sie ihren Namen in Anaconda geändert haben, weiß ich auch nicht, ob die Windows-Registrierungsschlüssel immer noch dieselben sind.

AKTUALISIEREN : 24.03.2017

Python (x, y) wurde seit Juni 2015 nicht mehr aktualisiert, daher kann man davon ausgehen, dass es aufgegeben wurde.

AKTUALISIEREN : 11.11.2016

Wie @cxw unten kommentiert , beziehen sich diese Antworten auf dieselben Bitversionen , und mit Bitversion meine ich 64-Bit vs. 32-Bit. Diese Antworten gelten beispielsweise für die Aktualisierung von 64-Bit-Python-2.7.10 auf 64-Bit-Python-2.7.11, dh : dasselbe Bit-Version. Während es möglich ist, zwei verschiedene Bit-Versionen von Python zusammen zu installieren, würde es einige Hacking erfordern, so dass ich diese Übung für den Leser speichern werde. Wenn Sie nicht hacken möchten, empfehle ich, beim Wechseln der Bitversion zuerst die andere Bitversion zu entfernen.

UPDATES : 2016-05-16
  • Anaconda und MiniConda können mit einer vorhandenen Python-Installation verwendet werden, indem die Optionen zum Ändern von Windows PATHund Registrierung deaktiviert werden . Erstellen Sie nach dem Extrahieren einen Symlink zu condaIhrer binoder installieren Sie conda von PyPI. Erstellen Sie dann einen weiteren Symlink conda-activate, der activateim Stammordner von Anaconda / Miniconda aufgerufen wird. Jetzt ist Anaconda / Miniconda genau wie Ruby RVM. Verwenden Sie einfach conda-activate root, um Anaconda / Miniconda zu aktivieren.
  • Portable Python wird nicht mehr entwickelt oder gewartet.

TL; DR

  • Verwenden Sie Anaconda oder Miniconda und führen Sie sie aus conda update --all, um jede Conda-Umgebung auf dem neuesten Stand zu halten.
  • gleiche Hauptversion von offiziellem Python ( zB 2.7.5), einfach über alt installieren ( zB 2.7.4),
  • verschiedene Hauptversionen von offiziellem Python ( z. B. 3.3), Seite an Seite mit alten installieren, Pfade / Assoziationen so einstellen, dass sie auf dominant ( z. B. 2.7) verweisen , Verknüpfung zu anderen ( z$ ln /c/Python33/python.exe python3 . B. in BASH ).

Die Antwort hängt ab:

  1. Wenn OP 2.7.x hat und eine neuere Version von 2.7.x installieren möchte, dann

    • Wenn Sie das MSI-Installationsprogramm von der offiziellen Python-Website verwenden , installieren Sie es einfach über die alte Version. Das Installationsprogramm gibt eine Warnung aus, dass die ältere Version entfernt und ersetzt wird. Wenn Sie vorher und nachher in "installierte Programme" in der "Systemsteuerung" nachsehen, wird bestätigt, dass die alte Version durch die neue Version ersetzt wurde. Neuere Versionen von 2.7.x sind abwärtskompatibel, daher ist dies absolut sicher und daher sollten meiner Meinung nach mehrere Versionen von 2.7.x niemals erforderlich sein.
    • Wenn Sie aus dem Quellcode erstellen, sollten Sie wahrscheinlich ein neues, sauberes Verzeichnis erstellen und dann Ihren Pfad zum neuen Build angeben, sobald alle Tests bestanden wurden und Sie sicher sind, dass er erfolgreich erstellt wurde. Möglicherweise möchten Sie jedoch das alte beibehalten Bauen Sie herum, weil das Erstellen aus der Quelle gelegentlich Probleme haben kann. Weitere Informationen zum Erstellen von Python x64 unter Windows 7 mit SDK 7.0 finden Sie in meinem Handbuch .
    • Wenn Sie von einer Distribution wie Python (x, y) installieren , besuchen Sie deren Website. Python (x, y) wurde aufgegeben. Ich glaube, dass Updates in Python (x, y) mit ihrem Paketmanager verarbeitet werden können, aber Updates sind auch auf ihrer Website enthalten . Ich konnte keine spezifische Referenz finden, so dass vielleicht jemand anderes dazu sprechen kann. Ähnlich wie ActiveState und wahrscheinlich Enthought gibt Python (x, y) eindeutig an, dass es nicht mit anderen Installationen von Python kompatibel ist:

      Es wird empfohlen, alle anderen Python-Distributionen zu deinstallieren, bevor Sie Python installieren (x, y).

    • Enthought Canopy verwendet ein MSI und wird entweder in Program Files\Enthoughtoder home\AppData\Local\Enthought\Canopy\Appfür alle Benutzer bzw. pro Benutzer installiert . Neuere Installationen werden mithilfe des integrierten Update-Tools aktualisiert. Siehe ihre Dokumentation .
    • ActiveState verwendet auch eine MSI, sodass neuere Installationen zusätzlich zu älteren installiert werden können. Siehe ihre Installationshinweise .

      Andere Python 2.7-Installationen Unter Windows kann ActivePython 2.7 nicht mit anderen Python 2.7-Installationen koexistieren (z. B. einem Python 2.7-Build von python.org). Deinstallieren Sie alle anderen Python 2.7-Installationen, bevor Sie ActivePython 2.7 installieren.

    • Sage empfiehlt, dass Sie es auf einer virtuellen Maschine installieren und eine Oracle VirtualBox-Image-Datei bereitstellen, die für diesen Zweck verwendet werden kann. Upgrades werden intern durch Ausgabe des sage -upgradeBefehls behandelt.
    • Anaconda kann mit dem folgenden condaBefehl aktualisiert werden :

      conda update --all

      Mit Anaconda / Miniconda können Benutzer Umgebungen erstellen , um mehrere Python-Versionen zu verwalten, einschließlich Python-2.6, 2.7, 3.3, 3.4 und 3.5. Die Root-Anaconda / Miniconda-Installationen basieren derzeit entweder auf Python-2.7 oder Python-3.5.

      Anaconda wird wahrscheinlich alle anderen Python-Installationen stören. Die Installation verwendet das MSI-Installationsprogramm. [ UPDATE : 2016-05-16] Anaconda und Miniconda verwenden jetzt .exeInstallationsprogramme und bieten Optionen zum Deaktivieren von Windows- PATHund Registrierungsänderungen.

      Daher kann Anaconda / Miniconda installiert werden, ohne vorhandene Python-Installationen zu stören, je nachdem, wie es installiert wurde und welche Optionen während der Installation ausgewählt wurden. Wenn das .exeInstallationsprogramm verwendet wird und die Optionen zum Ändern von Windows PATHund Registrierung nicht deaktiviert sind, werden alle vorherigen Python-Installationen deaktiviert . Durch einfaches Deinstallieren der Anaconda / Miniconda-Installation sollte jedoch die ursprüngliche Python-Installation wiederhergestellt werden, mit Ausnahme der Windows-Registrierungsschlüssel Python\PythonCore.

      Anaconda / Miniconda macht die folgenden Registrierungs Änderungen unabhängig von den Installationsoptionen: HKCU\Software\Python\ContinuumAnalytics\mit den folgenden Tasten: Help, InstallPath, Modulesund PythonPath- offizieller Python diese Schlüssel registriert auch, aber unter Python\PythonCore. Auch Deinstallationsinformationen sind für Anaconda \ Miniconda registriert. Wenn Sie während der Installation nicht die Option "Bei Windows registrieren" auswählen, wird diese nicht erstellt PythonCore, sodass Integrationen wie Python Tools für Visual Studio Anaconda / Miniconda nicht automatisch sehen. Wenn die Option Anaconda / Miniconda registrieren ist aktiviert, dann denke ich , Ihr vorhandener Python Windows - Registrierungsschlüssel geändert wird , und die Deinstallation wird sie wahrscheinlich nicht wieder herstellen.

    • Ich denke, WinPython- Updates können über die WinPython-Systemsteuerung verwaltet werden .
    • PortablePython wird nicht mehr entwickelt . Es gab keine Aktualisierungsmethode. Möglicherweise Updates entpackt in ein neues Verzeichnis werden konnte , und dann App\lib\site-packagesund App\Scriptskonnte in die neue Installation kopiert werden, aber wenn das nicht dann funktionierten alle Pakete Neuinstallation möglicherweise notwendig gewesen. Verwenden Sie pip listdiese Option, um zu sehen, welche Pakete installiert wurden und welche Versionen sie haben. Einige wurden von PortablePython installiert. Verwenden Sie easy_install pipdiese Option, um pip zu installieren, wenn es nicht installiert wurde.
  2. Wenn OP 2.7.x hat und eine andere Version installieren möchte, z. B. <= 2.6.x oder> = 3.xx, ist die Installation verschiedener Versionen nebeneinander in Ordnung. Sie müssen auswählen, welche Python-Version (falls vorhanden) mit *.pyDateien verknüpft werden soll und welche auf Ihrem Pfad angezeigt werden soll . Sie sollten jedoch in der Lage sein, Shells mit unterschiedlichen Pfaden einzurichten, wenn Sie BASH verwenden . AFAIK 2.7.x ist abwärtskompatibel mit 2.6.x, daher ist eine IMHO-Installation nebeneinander nicht erforderlich. Python-3.xx ist jedoch nicht abwärtskompatibel. Daher würde ich empfehlen, Python-2.7 auf Ihren Pfad zu setzen und zu haben Python-3 ist eine optionale Version, indem eine Verknüpfung zu seiner ausführbaren Datei namens python3 erstellt wird (dies ist ein unter Linux übliches Setup). Der offizielle Python-Standardinstallationspfad unter Windows lautet

    • C: \ Python33 für 3.3.x (letzter 29.07.2013)
    • C: \ Python32 für 3.2.x.
    • & c.
    • C: \ Python27 für 2.7.x (letzter 29.07.2013)
    • C: \ Python26 für 2.6.x.
    • & c.
  3. Wenn OP Python nicht aktualisiert, sondern lediglich Pakete aktualisiert, möchten sie möglicherweise in virtualenv nachsehen , um die verschiedenen Versionen von Paketen, die für ihre Entwicklungsprojekte spezifisch sind, getrennt zu halten. Pip ist auch ein großartiges Tool zum Aktualisieren von Paketen. Wenn Pakete Binärinstallationsprogramme verwenden, deinstalliere ich normalerweise das alte Paket, bevor ich das neue installiere.

Ich hoffe, das klärt Verwirrung.


1
Hey Mark, ich habe eine Anfängerfrage. Glauben Sie, dass es tatsächlich wichtig ist, ein Upgrade von 2.7.x auf 3.3.x durchzuführen? Ich fange an, Python zu verwenden und habe die alte Version installiert, aber von Anfang an wollte ich die neueste Version lernen (es sei denn, es gibt nur sehr geringfügige Unterschiede). Wie ist Ihr Anruf dazu? Danke für Ihre Hilfe.
Matteo

7
Ich würde beides benutzen. Wenn Sie auf MS Windows verfügbar sind, werden Sie in Ihrem Stammordner erhalten C:\Python27und C:\Python33, wenn Sie auf dem Mac sind, dann werden Sie sehen , /Library/Frameworks/Python/Versions/2.7.xund , /Library/Frameworks/Python/Versions/3.3.xund wenn Sie auf Linux sind wahrscheinlich haben Sie bereits beide installieren. Traditionell wird Python-2.7 verwendet und die Binärdatei für Python-3.3 mit verknüpft python33. Siehe auch Python2orPython3 und Python 2 vs Python 3 . Ich persönlich bin zu faul, um zu 3.3 zu wechseln.
Mark Mikofski

2
Danke für die ausführliche Antwort! Mit 2.7 funktionierte die Installation über alt nicht, wenn eine 32-Bit- und eine 64-Bit-Version war. Ich habe zwei Einträge in "Programme und Funktionen" gefunden, die beide auf C: \ Python27 verweisen. Wären Sie bereit, Ihrer Antwort hinzuzufügen, dass die Leute nur 32 mit 32 und 64 mit 64 überschreiben sollten? Vielen Dank!
cxw

1
@cxw danke für das Feedback. Wenn Sie sowohl 32 als auch 64 zusammen haben möchten, gibt es verschiedene Möglichkeiten. Am einfachsten ist es wahrscheinlich, eine sogenannte "Admin" -Installation der 32-Bit-Version über C:\Python27_x86die Befehlszeile zu verwenden : msiexec /a "python-2.7.11.msi" TARGETDIR="C:\Python27_x86" /qn /l*v python27_x86_install.log. Eine andere Möglichkeit besteht darin , aus dem Quellcode zu erstellen oder Bootstrap Python auszuprobieren .
Mark Mikofski

1
MSI-Installationsprogramm sagt, dass es den 2.7-Ordner ersetzen wird, aber wenn Sie andere Skripte im 2.7-Stammordner speichern, werden sie nicht gelöscht;)
XXN

6

Die beste Lösung besteht darin, die verschiedenen Python-Versionen in mehreren Pfaden zu installieren.

z.B. C: \ Python27 für 2.7 und C: \ Python33 für 3.3.

Weitere Informationen finden Sie hier: So führen Sie mehrere Python-Versionen unter Windows aus


So mache ich es. Ich führe sowohl 32- als auch 64-Bit-Versionen von Python 2.7.xx und 3.5.xx sowie IronPython 2.7.xx aus. Ich verwende Eclipse für die Entwicklung und wähle beim Debuggen den Python-Pfad. Wenn ich ein Skript ausführe, setze ich einfach den Pfad zu der Interpreter-Version, die ich verwenden möchte. Das Aktualisieren von 3.5.0 auf 3.5.3 bietet eine einfache Aktualisierungsoption gegenüber einer Neuinstallation.
Bill Kidd

5
  • Offizielle Python .msi-Installationsprogramme sollen Folgendes ersetzen:

    • Alle früheren Mikroversionen (in xyz ist z "Mikro"), da sie garantiert abwärtskompatibel und binärkompatibel sind
    • Eine "Snapshot" -Installation (aus dem Quellcode erstellt) mit einer beliebigen Mikroversion
  • Ein Snapshot-Installationsprogramm ersetzt jeden Snapshot durch eine niedrigere Mikroversion.

(Siehe verantwortlichen Code für 2.x , für 3.x )

Alle anderen Versionen sind nicht unbedingt kompatibel und werden daher neben der vorhandenen Version installiert. Wenn Sie die alte Version deinstallieren möchten, müssen Sie dies manuell tun. Deinstallieren Sie auch alle Module von Drittanbietern, die Sie dafür hatten:

  • Wenn Sie Module aus bdist_wininstPaketen (Windows .exe) installiert haben , deinstallieren Sie sie, bevor Sie die Version deinstallieren. Andernfalls funktioniert das Deinstallationsprogramm möglicherweise nicht ordnungsgemäß, wenn es über eine benutzerdefinierte Logik verfügt
  • Module, die mit setuptools/ installiert sind pip, die sich in befinden, Lib\site-packageskönnen anschließend einfach gelöscht werden
  • Pakete, die Sie ggf. pro Benutzer installiert haben, befinden sich in %APPDATA%/Python/PythonXY/site-packagesund können ebenfalls gelöscht werden

1

Ich habe immer nur die neue Version oben installiert und hatte nie Probleme. Stellen Sie jedoch sicher, dass Ihr Pfad aktualisiert wird, um auf die neue Version zu verweisen.


1
Behält es bei einer Over-Top-Installation die externen Module wie Pygame, BS4, LXML usw. bei, die ich heruntergeladen habe?
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.