Wie aktualisiere ich Python ordnungsgemäß unter Mac OS X?

Wie aktualisiere ich Python ordnungsgemäß unter Mac OS X?

Wenn ich Python von der Python-Website herunterlade und versuche, es mit dem Installationsprogramm zu installieren, wird es installiert, aber ich muss angeben, dass ich die neue Version von Python haben möchte, wenn ich meine Programme vom Terminal aus ausführe. Wenn ich einfach eingebe:

python app.py

Es läuft mit der alten Version.

Wie kann ich die neue Version als Standard festlegen?

Antwort1

Ich habe endlich herausgefunden, wie es geht. Das Installationsprogramm hat einen Python 2.6-Ordner in /Application erstellt. In diesem Ordner befindet sich ein Skript namens Update Shell Profile.command. Ich musste es nur ausführen und jetzt funktioniert es.

Antwort2

Zwei Fragen:

  1. Wo wurde das neue Python installiert?
  2. Wie sieht Ihr $PATH aus?

Eine Standardeinstellung auf Unix-ähnlichen Systemen ist, dass vom Benutzer installierte Software in /usr/local/bin installiert wird, und die meisten *nix-Distributionen legen dieses VerzeichnisVorsystemweite Verzeichnisse in der Standardvariable $PATH (so weiß Ihre Shell, wo sie nach Programmen suchen muss). Auf diese Weise wird das neue Element zuerst gefunden, wenn Sie etwas Neues installieren.

Ein Standard-$PATH für OS X sieht jedoch folgendermaßen aus:

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

Das Problem ist, dass durch das Setzen/usr/local/binso spät, das systemweite Python (das bei/usr/binund daher früher in Ihrem $PATH) wird immer wieder getroffen.

Meine Antwort besteht darin, meinen $PATH auf einem Mac folgendermaßen aussehen zu lassen:

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin

Erstellen Sie dazu eine Datei.Profilin Ihrem Home-Verzeichnis und fügen Sie etwa Folgendes hinzu:

#### Let's take care of our $PATH
# A backup of the original $PATH
# /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

# My preferred order - /usr/local goes first, damn it!
PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin

Bearbeiten: Ich folge hier und nicht in Kommentaren, weil es für einen Kommentar zu lang wird. Die Zeile in Ihrem.Profilmit /sw/bin/init.shkommt aus dem PaketmanagerFink, von dem ich annehme, dass Sie es verwenden (oder irgendwann einmal verwendet haben). Die andere Zeile scheint darauf hinzudeuten, dass Sie irgendwann MacPython installiert haben und es Ihr $PATHfür Sie umgeschrieben hat. Ich kenne MacPython nicht, aber wenn esDiese Seite, dann wurde es seit 2004 nicht mehr aktualisiert. Außerdem scheint dort keine Version von OS X nach 10.3 erwähnt zu werden, die nicht sehr aktuell ist.

Jetzt bin ich noch verwirrter: Wann haben Sie Python aktualisiert? Wie haben Sie es aktualisiert? Welche Version von OS X verwenden Sie?

Antwort3

Finden Sie heraus, wo Python lebt:

$ which python
/usr/bin/python

Prüfen Sie, ob es ein symbolischer Link ist:

$ ls -Fal /usr/bin/python
lrwxr-xr-x  1 root wheel  72 May 19 12:02 /usr/bin/python@ -> ../../System/Library/Frameworks/Python.framework/Versions/2.5/bin/python

Wenn ja, verknüpfen Sie /usr/bin/python mit dem neuen Python:

$ sudo ln -s (new python, maybe /System/Library/Frameworks/Python.framework/Versions/2.x/bin/python) /usr/bin/python

Überprüfen Sie, ob es funktioniert:

$ python --version
Python 2.xxx

verwandte Informationen