Wenn Sie eine virtuelle Umgebung mit "python3 -m venv my-venv" einrichten, aktivieren Sie diese virtuelle Umgebung von einem beliebigen Terminal aus, indem Sie "source ... / my-env / bin / activate" aufrufen Standard in diesem Terminal. Sie können die aktuelle Standardversion überprüfen, indem Sie "python -V" aufrufen.
Craig Hicks
Während Ihre Antwort hilfreich ist, fragte ich warum. nicht wie. und das ist die große Debatte. Hier. Warum sollte eine ältere Version standardmäßig anstelle der aktuellen Version verwendet werden?
Givonz
1
Du bist genau richtig in Bezug auf meinen "Kommentar"! Deshalb habe ich einen Kommentar und keine Antwort geschrieben.
Craig Hicks
Antworten:
56
Ich weiß nicht, welche "Dokumente" Sie lesen oder was sie sagen, aber das /usr/bin/pythonist nur eine symbolische Verknüpfung zur Standardversion von Python, in diesem Fall 2.7, die das Ergebnis der Eingabe pythonauf dem Terminal ist. Dies ist das Ergebnis von PEP 394, das dies definiert
vorerst sollten alle ausschüttungen sicherstellen, dass sie pythonsich auf dasselbe ziel beziehen wiepython2 .
type pythonund file /usr/bin/pythonwird dies bestätigen.
Um Python 3 zu verwenden, müssen Sie explizit sein und python3die Befehlszeile eingeben python2. Dies wird empfohlen, wenn Sie eine bestimmte Version benötigen. Dies kann auch mit Python 2 erfolgen, indem Sie Folgendes eingeben . Ubuntu enthält in allen aktuellen Versionen standardmäßig sowohl Python 2 als auch Python 3.
Geben Sie Folgendes ein, um Python 3.5 REPL abzurufen oder ein kompatibles Skript auszuführen python3. Dies dient der Aufrechterhaltung der Kompatibilität mit allen älteren Python 2.x-Versionen (die immer mit Python 2.x verknüpft waren und bleiben python).
Der Bindestrich könnte herausfinden, pythonob Sie eine .desktopDatei dafür eingerichtet haben (in ~/.local/share/applications/), um ein Terminal zu öffnen und beispielsweise die REPL zu starten. Es gibt keine Standard-GUI-REPL-Umgebung für Python, und normale Benutzeroberflächenerwartungen bestehen darin, dass der Benutzer zum Terminal wechselt.
Die Rede davon, dass Python 3.5 der Standard ist, ist, dass die Betreuer alle Systemskripte von Python 2.x auf Python 3.x portieren, nicht, dass Python 3 Python 2 in allen Fällen ersetzen würde.
Ich denke, die richtige Frage ist, wie füge ich Python3 in meinen Pfad ein, damit es automatisch ausgeführt wird.
Givonz
Meinen Sie, wie bringen Sie Python-Skripte dazu, wie ein kompiliertes Programm ausgeführt zu werden?
Andrew Keech
Habe ich, danke. Geben Sie einfach python3 an der Eingabeaufforderung ein.
Givonz
2
AIUI, was man langfristig mit / usr / bin / python machen soll, ist noch eine offene Frage. Best Practice für Python2-Skripte wäre, Python2 explizit zu verwenden.
Peter Green
1
Anstatt #!/usr/bin/python3(oder #!/usr/bin/python2) in Skripten zu verwenden, ist es besser (nur für Python, speziell), #!/usr/bin/env python3wenn Sie möchten, dass es remote portierbar ist. Dies ist größtenteils nur eine Dokumentation, da sie in vielen Fällen $ python3 your_pyprogram.pyohnehin als using bezeichnet wird.
Michael
4
Sie gehen davon aus, dass das Standard-Python als verfügbar sein sollte python. Diese Annahme ist falsch.
Auf einem System, auf dem Python 3 „vorinstalliert“ und kein Python 2 installiert ist, wird es nur python3und kein Python 2 geben python.
Code, der für Python 3 geschrieben wurde, sollte immer nach einem Interpreter mit dem Namen suchen python3. Code, der für Python 2 geschrieben wurde, wird in der Vergangenheit gesucht python.
Es könnte in vielleicht Jahrzehnten einen Zeitpunkt geben, an dem sich fast niemand mehr an Python 2 erinnert, wenn pythonsich jemand darauf zu beziehen beginnt python3. Dies dient lediglich der Bequemlichkeit und kann und sollte, wenn überhaupt, nicht verfrüht erfolgen! Es gibt keine Eile wegen der folgenden Auswirkungen:
"Aktuelle alte" Systeme haben nur keine Kenntnis davon python2, pythondaher ist es absolut sinnvoll, Python 2-Code weiterhin zu suchen python. Dies ist der Grund, warum Sie pythonPython 2 als "solange Python 2-Code existiert" bezeichnen sollten.
Neuer Code für Python 2, wenn das Sinn macht, kann perfekt suchen python. Es könnte auch danach suchen python2, ob es nur auf Python 3-fähigen und gepflegten Systemen laufen soll (die einen solchen Link bieten sollten).
Der Vorteil der Verwendung von Python 2-Code besteht python2darin, dass keine zusätzlichen Berührungen erforderlich sind, sobald pythonder Verweis beginnt python3, was möglicherweise nie pythonoder gar nicht geschieht, was möglicherweise oder möglicherweise nicht geschieht. (Das könnte wahr werden , wenn Python - 2 - Code ausstirbt nach hypothetische Python 4 mit seinem Dolmetscher populär wird python4-. Denn es läßt darauf entweder python3oder python4beide verwirrend wäre.)
Wie können Sie den gleichen Befehl eingeben und 2 unterschiedliche Ergebnisse erhalten?
Givonz
3
Die andere Ausgabe des zweiten Aufrufs von pythonergibt sich aus <tab>der Abfrage des Autocompleters, der dann die möglichen Permutationen ausgibt python*und Sie zu einer neuen Eingabeaufforderung zurückbringt.
Andrew Keech
@givonz, hmm ich habe die Tabulatortaste bro benutzt. es wird nicht ausgegeben. es ist möglich, binäres Muster.
Donnerstag,
Negative Stimme für was?
Donnerstag,
1
Ich habe nicht abgelehnt, aber ich denke, dass die Antwort erklären sollte, warum die 2 ersten Ausgänge unterschiedlich sind und welche Rolle sie spielt apt-cache, insbesondere für Ubuntu-Anfänger.
AL
2
Python 3.x sollte mit 16.04 funktionieren - Eigentlich wird es definitiv funktionieren. Ich habe Ubuntu 14.04 und ich habe Python 3.4.3 - Alles, was Sie tun müssen, um es zu testen, ist eintippen python3und es sollte Ihnen sagen, welche Version Sie ausführen.
Nun, ich würde nicht mit einer OS-Informatik anrufen. Und genau genommen: Ubuntu ist ein Linux-basiertes Betriebssystem und kein Unix-basiertes.
magu_
Ich habe die Unterschiede zwischen Linux und Unix noch nicht verstanden, abgesehen von einigen Eingabeaufforderungen und anderen, aber genau formulierten Befehlen. obwohl die GUI weitaus weiter fortgeschritten ist als das, was ich in Solaris sehe.
Givonz
1
-1 Damit wird die Frage nach dem Warum nicht beantwortet .
Antworten:
Ich weiß nicht, welche "Dokumente" Sie lesen oder was sie sagen, aber das
/usr/bin/python
ist nur eine symbolische Verknüpfung zur Standardversion von Python, in diesem Fall 2.7, die das Ergebnis der Eingabepython
auf dem Terminal ist. Dies ist das Ergebnis von PEP 394, das dies definierttype python
undfile /usr/bin/python
wird dies bestätigen.Der Grund für diese andere Anordnung als die Konvention ist, dass das Quellpaket python-defaults in Xenial die Version 2.7.11 ist , sodass der symbolische Python-Link auf diese Version verweist.
Um Python 3 zu verwenden, müssen Sie explizit sein und
python3
die Befehlszeile eingebenpython2
. Dies wird empfohlen, wenn Sie eine bestimmte Version benötigen. Dies kann auch mit Python 2 erfolgen, indem Sie Folgendes eingeben . Ubuntu enthält in allen aktuellen Versionen standardmäßig sowohl Python 2 als auch Python 3.Es ist geplant, alles auf Python 3 zu migrieren und als Standard festzulegen.
quelle
Geben Sie Folgendes ein, um Python 3.5 REPL abzurufen oder ein kompatibles Skript auszuführen
python3
. Dies dient der Aufrechterhaltung der Kompatibilität mit allen älteren Python 2.x-Versionen (die immer mit Python 2.x verknüpft waren und bleibenpython
).Der Bindestrich könnte herausfinden,
python
ob Sie eine.desktop
Datei dafür eingerichtet haben (in~/.local/share/applications/
), um ein Terminal zu öffnen und beispielsweise die REPL zu starten. Es gibt keine Standard-GUI-REPL-Umgebung für Python, und normale Benutzeroberflächenerwartungen bestehen darin, dass der Benutzer zum Terminal wechselt.Die Rede davon, dass Python 3.5 der Standard ist, ist, dass die Betreuer alle Systemskripte von Python 2.x auf Python 3.x portieren, nicht, dass Python 3 Python 2 in allen Fällen ersetzen würde.
quelle
#!/usr/bin/python3
(oder#!/usr/bin/python2
) in Skripten zu verwenden, ist es besser (nur für Python, speziell),#!/usr/bin/env python3
wenn Sie möchten, dass es remote portierbar ist. Dies ist größtenteils nur eine Dokumentation, da sie in vielen Fällen$ python3 your_pyprogram.py
ohnehin als using bezeichnet wird.Sie gehen davon aus, dass das Standard-Python als verfügbar sein sollte
python
. Diese Annahme ist falsch.Auf einem System, auf dem Python 3 „vorinstalliert“ und kein Python 2 installiert ist, wird es nur
python3
und kein Python 2 gebenpython
.Code, der für Python 3 geschrieben wurde, sollte immer nach einem Interpreter mit dem Namen suchen
python3
. Code, der für Python 2 geschrieben wurde, wird in der Vergangenheit gesuchtpython
.Es könnte in vielleicht Jahrzehnten einen Zeitpunkt geben, an dem sich fast niemand mehr an Python 2 erinnert, wenn
python
sich jemand darauf zu beziehen beginntpython3
. Dies dient lediglich der Bequemlichkeit und kann und sollte, wenn überhaupt, nicht verfrüht erfolgen! Es gibt keine Eile wegen der folgenden Auswirkungen:"Aktuelle alte" Systeme haben nur keine Kenntnis davon
python2
,python
daher ist es absolut sinnvoll, Python 2-Code weiterhin zu suchenpython
. Dies ist der Grund, warum Siepython
Python 2 als "solange Python 2-Code existiert" bezeichnen sollten.Neuer Code für Python 2, wenn das Sinn macht, kann perfekt suchen
python
. Es könnte auch danach suchenpython2
, ob es nur auf Python 3-fähigen und gepflegten Systemen laufen soll (die einen solchen Link bieten sollten).Der Vorteil der Verwendung von Python 2-Code besteht
python2
darin, dass keine zusätzlichen Berührungen erforderlich sind, sobaldpython
der Verweis beginntpython3
, was möglicherweise niepython
oder gar nicht geschieht, was möglicherweise oder möglicherweise nicht geschieht. (Das könnte wahr werden , wenn Python - 2 - Code ausstirbt nach hypothetische Python 4 mit seinem Dolmetscher populär wirdpython4
-. Denn es läßt darauf entwederpython3
oderpython4
beide verwirrend wäre.)quelle
Python 2.x, 3.x Versionen sind verfügbar. Wenn Sie Python aufrufen, während es auf Python 2.x zeigt, wird Python 2.x geladen
Das folgende Bild wird Ihnen helfen.
quelle
python
ergibt sich aus<tab>
der Abfrage des Autocompleters, der dann die möglichen Permutationen ausgibtpython*
und Sie zu einer neuen Eingabeaufforderung zurückbringt.apt-cache
, insbesondere für Ubuntu-Anfänger.Python 3.x sollte mit 16.04 funktionieren - Eigentlich wird es definitiv funktionieren. Ich habe Ubuntu 14.04 und ich habe Python 3.4.3 - Alles, was Sie tun müssen, um es zu testen, ist eintippen
python3
und es sollte Ihnen sagen, welche Version Sie ausführen.quelle