Ich benutze Mountain Lion und die grundlegende Standard-Python-Version ist 2.7. Ich habe Python 3.3 heruntergeladen und möchte es als Standard einstellen.
Derzeit:
$ python
version 2.7.5
$ python3.3
version 3.3
Wie stelle ich es so ein, dass jedes Mal, wenn ich $ python
ausführe, 3.3 geöffnet wird?
Eine systemweite Änderung der Standard-Python-Version würde einige Anwendungen, die auf Python2 angewiesen sind, zerstören.
Sie können die Befehle in den meisten Shells mit Aliasen versehen, Mac OS X verwendet standardmäßig bash. Wenn Sie das auch tun, fügen Sie dies in Ihr ~/.bash_profile
ein:
alias python='python3'
Der Befehl python
verweist jetzt auf python3
. Wenn Sie das ursprüngliche Python wollen (das sich auf python2 bezieht), können Sie den Alias entschlüsseln, d.h. wenn Sie \python
ausführen, wird python2 gestartet und der Alias bleibt unberührt)
Wenn Sie öfter Interpreter starten (ich tue das), ist es besser, dies zu tun:
alias 2='python2'
alias 3='python3'
Öffnen Sie eine neue Shell-Sitzung und diese Aliase werden verfügbar sein. Wenn Sie wollen, dass sie in der aktuellen Sitzung wirksam sind, müssen Sie sie selbst eingeben:
source ~/.bash_profile
Tipp: Anstatt zu tun:
#!/usr/bin/env python
verwenden:
#!/usr/bin/env python3
wird das System Python3 für die Ausführung von Python ausführbaren Dateien verwenden.
Gehen Sie zu 'Anwendungen', geben Sie den Ordner 'Python' ein, dort sollte ein Bash-Skript namens 'Update Shell Profile.command' oder ähnlich sein. Führen Sie dieses Skript aus und es sollte funktionieren.
Update: Es sieht so aus, als sollten Sie es nicht aktualisieren: https://stackoverflow.com/questions/5846167/how-to-change-default-python-version
Ich bin nicht sicher, ob dies unter OS X verfügbar ist, aber unter Linux würde ich den Befehl "Module" verwenden. Siehe hier.
Richten Sie die Moduldatei korrekt ein und fügen Sie dann etwas wie das Folgende zu Ihrer rc-Datei hinzu (z.B. ~/.bashrc):
module load python3.3
Dadurch werden die Pfade bei der Anmeldung nach Bedarf umgeschaltet, ohne die Systemvorgaben zu beeinflussen.