it-swarm.com.de

So legen Sie python 3 als Standardinterpreter in Ubuntu 14.04 fest

Ich arbeite mit Ubuntu 14.04 LTS auf EC2. Ich möchte den standardmäßig installierten python -Interpreter von python 2.7 auf 3.4.0 ändern.

Wenn ich mache:

/home/ubuntu$ which python
/usr/bin/python

ich sehe in /usr/bin/:

enter image description here

Es ist also offensichtlich da. Wie setze ich das als Standard?

30
user61629

Dafür gibt es mehrere Möglichkeiten. Ändern Sie zunächst die Sym-Links so, dass python in /usr/bin/ tatsächlich auf dieselbe Position verweist wie der Sym-Link /usr/bin/python3. Dies ist jedoch eine schlechte Idee (wie ich unten erläutere).

Die zweite Option wäre, einen benutzerspezifischen Befehlsalias zu erstellen - dies ist definitiv die bessere Option von beiden.


Das Ändern von Sym-Links ist schlecht

Python wird in einem Großteil von Ubuntu für Systemskripte und -software verwendet, und Software setzt voraus, dass Python (und die Befehle zum Starten von Python) an einer bestimmten Stelle vorhanden sind.
Siehe hier (Ubuntu Wiki - ziemlich veraltet) und hier (Debian Wiki) für weitere Informationen darüber, was Ubuntu/Debian Pythonverwendet. _ zum.

Nun, während Python 3 (3.4.0 in Ihrem Fall) die neueste und empfohlene Version von Python ist, gibt es immer noch eine Es gibt noch viel Code, der nicht nach Python 3 portiert wurde.

Wie Sie gesehen haben, wird beim Ausführen von python standardmäßig der Interpreter Python 2.7 ausgeführt - und genau das erwartet die Software auf Ihrem Computer.

Wenn Sie also den Befehl so ändern, dass Python 3 ausgeführt wird, werden alle Arten von Chaos und Codefehlern verursacht, da Sie versuchen, Python 2.7-Code auszuführen (welcher wird in Python 2.7-Syntax geschrieben und verwendet Python 2.7-Bibliotheken) unter Verwendung des Python 3.4-Interpreters (der Python 3.4-Syntax und Python 3.4 Bibliotheken.)


Sicherere Methode zum Erstellen von Aliasen

Sie können jedoch einen Alias ​​für Ihren persönlichen Gebrauch erstellen . Dies kann einfach durch Hinzufügen der folgenden Zeile erreicht werden:

alias python=python3

oder

alias python=/usr/bin/python3

/ in der ~/.bash_aliases -Datei - die Sie über Sudo nano ~/.bash_aliases bearbeiten können. Schließen Sie dann das Terminal und öffnen Sie es erneut. Sie sollten in der Lage sein, den Befehl python für Ihren persönlichen Gebrauch zu verwenden, ohne dass dies Auswirkungen auf den Rest des Systems hat.

Auch dies wird jedoch nicht empfohlen, da der systemweite Code, der von der richtigen Platzierung der Python -Interpreter abhängt, zwar nicht beschädigt wird, aber ich habe gehört, dass er andere Probleme verursachen kann (das) Ich weiß/erinnere mich nicht.)


Richtige Methode, bei der der Python -Interpreter überhaupt nicht geändert werden muss

Wenn Sie syntaktisch korrektes Python schreiben, sollten Sie ein sogenanntes Shebang einfügen. (Siehe auch hier und hier .)

Bei korrekter Einbindung können Sie auf diese Weise ein Python -Skript einfach über ./SCRIPT-NAME.py ausführen, nachdem Sie das Skript über Sudo chmod +x ./SCRIPT-NAME.py ausführbar gemacht haben. Sie können auch ganz auf den Dateityp .py verzichten und den Code einfach in eine leere Datei eingeben und als SCRIPT-NAME speichern und dann Sudo chmod +x ./SCRIPT-NAME ausführen und über ./SCRIPT-NAME ausführen.

Zugegeben, dies erfordert etwas mehr Arbeit - stellt jedoch sicher, dass Ihr Code mit dem richtigen Interpreter ausgeführt wird.

Und wirklich. Wie schwer ist es, python3 einzugeben, um den Code korrekt auszuführen? Ich versuche nicht gemein zu sein, und ich kann ein bisschen verstehen, warum Sie das tun wollen, aber es ist nicht so schwer, nur python3 anstelle von python auszuführen.

41
RPiAwesomeness