Ich kann jedoch nicht von Python2 zu Python3 wechseln.
Soma-Suzuki:~ Soma$ python --version
Python 2.7.10
Soma-Suzuki:~ Soma$ pyenv global
2.7.10
Soma-Suzuki:~ Soma$ pyenv versions
system
* 2.7.10 (set by /Users/Soma/.pyenv/version)
3.5.0
Soma-Suzuki:~ Soma$ pyenv global 3.5.0
Soma-Suzuki:~ Soma$ pyenv global
3.5.0
Soma-Suzuki:~ Soma$ pyenv versions
system
2.7.10
* 3.5.0 (set by /Users/Soma/.pyenv/version)
Soma-Suzuki:~ Soma$ python --version
Python 2.7.10
Soma-Suzuki:~ Soma$
Ich verstehe nicht, warum das passiert.
Mein Python befindet sich in diesem Verzeichnis.
Soma-Suzuki:~ Soma$ which python
/usr/bin/python
Sie können einfach Ihre .bashrc-Datei bearbeiten. Machen Sie Alias python=Python3.5.0
– Anakin Tung
25. Okt. 2015 um 4:17
@AnakinTung macht damit die ordnungsgemäße Versionskontrolle völlig zunichte.
– RichieHH
23. März 2021 um 8:08
Haben Sie eine „.python-version“-Datei in diesem Verzeichnis?
– Dorian
19. April 2022 um 20:36 Uhr
unordentliches Haar
[July 2021]
Wenn diese Meldung beim Ausführen angezeigt wird eval "$(pyenv init -)"
WARNING: `pyenv init -` no longer sets PATH.
Run `pyenv init` to see the necessary changes to make to your configuration.
Sie sollten die Nachricht von überprüfen pyenv init wie die Warnung sagt, aber kurz gesagt, Sie können verwenden eval "$(pyenv init --path)" stattdessen.
Und vergessen Sie nicht, Ihre Daten entsprechend zu aktualisieren ~/.bash_profile, ~/.zprofile, ~/.bashrc, ~/.zshrc o.ä. bei Bedarf.
Dies hat mein Problem unter Mac OS Catalina gelöst. Ich habe diese Warnung nicht erhalten und meine Python-Version wurde trotz der Aktualisierung nicht aktualisiert eval "$(pyenv init -)" in meinem .zshrc. Danke!
– SocraticDatum
12. Juli 2021 um 21:47 Uhr
Weder ich noch irgendjemand in der Klasse, die ich unterrichtete, bekam die Warnung, aber es war super frustrierend … Ich bin nicht glücklich, dass ich nie eine Mitteilung über diese Änderung gesehen habe.
– fbenz
5. Okt. 2021 um 14:54
Für macOS Big Sur (installiert über brew) benötigte ich (neben meinem vorhandenen eval "$(pyenv init -)" In .zshrc), um Folgendes hinzuzufügen .zprofile: eval "$(pyenv init --path)".
– Raumfahrttechnik
22. Okt. 2021 um 1:40
Was ist der Unterschied zwischen - Und --path?
– liushuaikobe
4. Januar 2022 um 8:19 Uhr
Wie ScrotumDave konnte ich auch bei Catalina keine Warnung generieren, aber das hat das Problem trotzdem behoben.
Gemäß der bereitgestellten Dokumentation, Ort eval "$(pyenv init -)" gegen Ende .bash_profile. Beachten Sie, dass es für mich wichtig ist, es zu platzieren .bashrc tat nicht arbeiten. (Die Dokumente warnen vor „seltsamem“ Verhalten, wenn .bashrc wird eingesetzt.)
– Rico Picone
3. September 2018 um 4:05
Betrieb eval "$(pyenv init -)" ändert das nicht python -V in meinem Fall, obwohl ich die Pyenv-Versionen installiert habe ~/.pyenv
– Vadorequest
25. Februar 2019 um 13:00 Uhr
ich habe gefehlt export PATH="$PYENV_ROOT/shims:$PATH" In .zshrc zusätzlich zu den export PATH="$PYENV_ROOT/bin:$PATH" Ich hatte konfiguriert
– Vadorequest
25. Februar 2019 um 13:06 Uhr
Wie Vadorequest sagte, müssen Sie, wenn pyenv mit Homebrew installiert wird, $PYENV_ROOT/shims zum Pfad hinzufügen, da $PYENV_ROOT/bin nicht existiert. Ich denke, das ist einzigartig bei Homebrew-Installationen von Pyenv.
– Majorgear
13. Juli 2021 um 20:44 Uhr
Ich weiß nicht warum, aber auf meinem System wurde $PYENV_ROOT nie definiert; hinzufügen export PATH="$(pyenv root)/shims:$PATH" zu meiner .zshrc-Datei hat funktioniert.
– Was könnte
13. September 2021 um 15:38 Uhr
KZiovas
In Ubuntu die ~/.bashrc Die Datei muss aktualisiert und geändert werden eval "$(pyenv init -)" Zu eval "$(pyenv init --path)".
Bearbeiten: Ich möchte nur darauf hinweisen, dass die Änderung nach einem Neustart des Terminals wirksam wird. Wenn Sie das Terminal nicht neu starten möchten, können Sie auch einen zusätzlichen Schritt ausführen Zusätzlich zum Ändern der Datei. Führen Sie im Terminal denselben Befehl aus, den Sie in der Datei geändert haben: eval "$(pyenv init --path)"
Das war für mich auch auf MacOs die Lösung. Danke.
– flix
20. September 2021 um 6:27 Uhr
Dies ist die einzige Lösung, die bei mir funktioniert hat (Pop OS).
– Skryvets
30. März 2022 um 14:18 Uhr
Du bist mein Held!
– Eitel Dagnin
30. April 2022 um 8:06 Uhr
Bei mir funktioniert es auch unter MacOS wunderbar, vielen Dank 🙂
– Fotocodes
20. Juli 2022 um 14:07 Uhr
Ja. Neustart des Terminals – das ist etwas ganz anderes als der Neustart der gesamten Maschine. Vielen Dank für die Bearbeitung!
– jsbueno
21. Juli 2022 um 13:11 Uhr
Boby
Bei mir hat das unter MacOS mit ZSH nach der Installation über Homebrew funktioniert:
echo 'eval "$(pyenv init --path)"' >> ~/.zprofile
Ich hatte zunächst eval "$(pyenv init -)" in meinem Inneren ~/.zshrc Datei, aber das schien nicht zu funktionieren. Nachdem Sie dieser Anleitung gefolgt sind: https://github.com/pyenv/pyenv#basic-github-checkout Ich habe das entfernt eval Anruf von der .zshrc Datei und fügte sie der hinzu .zprofile Datei mit dem obigen Befehl und nach dem Neustart des Terminals hat alles funktioniert.
alien_frog
Sie haben vergessen, dies hinzuzufügen eval "$(pyenv init -)".
Fügen Sie dies Ihrer .bash_profile- oder .bashrc-Datei (Mac <=10.14) oder Ihrer .zshrc-Datei (Mac 10.15+) hinzu.
Laut Dokumentation sollte es sich am Ende der Datei befinden
– Jonathan
18. Dezember 2017 um 21:47 Uhr
@Jonathan nicht anders
– alien_frog
18. Januar 2019 um 14:35 Uhr
Eingeben pyenv init im Terminal, um zu sehen, ob einige notwendige Änderungen vorgenommen werden müssen.
– xemexpress
26. Mai 2021 um 15:22 Uhr
@xemexpress, das ist nicht besonders hilfreich, für mich sagt es mir nur, ich solle „die README-Datei lesen“ … irgendwo …
– Ken Williams
18. Januar 2022 um 17:03 Uhr
Befugnisse
Dies ist eine großartige Gelegenheit, mehr über die Funktionsweise von Pyenv zu erfahren.
Der pyenv global Der Befehl liest einfach die Daten in Ihrem /Users/Soma/.pyenv/version Verzeichnis. Es ist im Grunde dasselbe wie cat /Users/Soma/.pyenv/version.
Der pyenv versions Befehl ist gerecht Überprüfung durch die Hierarchie und Auswahl der richtigen Python-Version, die verwendet werden soll, wenn ein „shim interceptable“-Befehl wie folgt lautet python oder pip es läuft.
Wenn du rennst pyenv global 3.5.0Die /Users/Soma/.pyenv/version Die Datei wird aktualisiert und enthält nun „3.5.0“. Das ist die einzige Änderung, die pyenv vornimmt. Die meisten Benutzer sind darüber überrascht pyenv global 3.5.0 Ändert nur eine einzelne Zeile in einer Textdatei!
Wenn du rennst python --versionführt Ihr Terminal die gleichen Schritte aus, die es ausführt, wenn ein Shell-Befehl ausgeführt wird: Es durchläuft jedes Verzeichnis in Ihrem PATH und sucht nach der ersten ausführbaren Datei mit dem Namen python.
Wenn Sie tippen echo $PATHSie erhalten so etwas: /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
Ihre Maschine findet das python ausführbar in der /usr/bin Verzeichnis.
Sie können diesen Code zu Ihrem hinzufügen ~/.bash_profile Datei, um Ihren PFAD zu ändern.
if command -v pyenv 1>/dev/null 2>&1; then
eval "$(pyenv init -)"
fi
Starten Sie Ihr Terminal neu und führen Sie es aus echo $PATH erneut, und Sie sehen nun eine Ausgabe wie diese: /Users/Soma/.pyenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
Beachten Sie, wie die /Users/Soma/.pyenv/shims Das Verzeichnis befindet sich am Anfang des PATH Jetzt. Wenn du rennst python --version Jetzt wird der Befehl von verarbeitet python ausführbar in /Users/Soma/.pyenv/shims. Der Befehl wird keine Gelegenheit haben, von ihm übernommen zu werden /usr/bin/python weil es gepackt wird /Users/Soma/.pyenv/shims/python Erste.
Ich kann verstehen, warum dieser Fehler Sie verwirrt. Es ist schwierig, dies zu debuggen, wenn Sie es nicht wissen wie pyenv funktioniert.
Laut Dokumentation sollte es sich am Ende der Datei befinden
– Jonathan
18. Dezember 2017 um 21:47 Uhr
@Jonathan nicht anders
– alien_frog
18. Januar 2019 um 14:35 Uhr
Eingeben pyenv init im Terminal, um zu sehen, ob einige notwendige Änderungen vorgenommen werden müssen.
– xemexpress
26. Mai 2021 um 15:22 Uhr
@xemexpress, das ist nicht besonders hilfreich, für mich sagt es mir nur, ich solle „die README-Datei lesen“ … irgendwo …
– Ken Williams
18. Januar 2022 um 17:03 Uhr
Joey Iglesias
Ich hatte mit dem gleichen Problem auf einem Apple M1 MacBook Pro mit Monterey und installiertem Pyenv auf einem Rosetta-Emulationsterminal zu kämpfen.
Meine Lösung bestand darin, meiner ~/.zshrc-Datei Folgendes hinzuzufügen:
Ich kann jetzt sehen, wie die Versionen wie erwartet wechseln.
Nachdem ich beide Zeilen hinzugefügt hatte, funktionierte es, vorher habe ich nur die erste Zeile hinzugefügt. Auch das Problem mit meiner Konfiguration war, dass ich bekam /home/nikhil/.pyenv/plugins/pyenv-virtualenv/shims: Nur Virtualenv-Shims, aber KEINE PYENV-Shims, also nachdem ich diese zweite Zeile hinzugefügt habe, bekomme ich jetzt /home/nikhil/.pyenv/plugins/pyenv-virtualenv/shims:/home/nikhil/.pyenv/shims: PYENV SHIMS auch. Um diesen Standort zu erhalten, schreiben Sie echo $PATH. Auch die Antwort von @Powers hat mir geholfen
– Nikhil Bhardwaj
11. Januar 2022 um 17:31 Uhr
Danke, das hat mir bei meinem o-my-zsh-Terminal geholfen
– Vasya Krenta vkrenta
1. Februar 2022 um 15:12 Uhr
das hat bei mir auch funktioniert. MacBook M1, Brew, Ohmyzsh, ohne Virtualenv-Init, es funktionierte auch für den Versionswechsel und die Virtualenv-Einstellung. Danke!
– Behinderung
15. Februar 2022 um 12:06 Uhr
14501600cookie-checkPython kann nicht mit pyenv gewechselt werdenyes
Sie können einfach Ihre .bashrc-Datei bearbeiten. Machen Sie Alias python=Python3.5.0
– Anakin Tung
25. Okt. 2015 um 4:17
@AnakinTung macht damit die ordnungsgemäße Versionskontrolle völlig zunichte.
– RichieHH
23. März 2021 um 8:08
Haben Sie eine „.python-version“-Datei in diesem Verzeichnis?
– Dorian
19. April 2022 um 20:36 Uhr