
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:
- Wo wurde das neue Python installiert?
- 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.sh
kommt 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 $PATH
fü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