Probleme bei der Verwendung von zsh mit Catalina, Python / Python3, pip / pip3, PATH, zshrc usw.


14

Ich habe kürzlich auf Catalina und den Standard zsh aktualisiert. Wahrscheinlich habe ich während des Übergangs die Pfade durcheinander gebracht und versuche derzeit, die Speicherorte von Python3.7, pip3, dem Befehlszeilen-PATH und meiner zshrc-Datei zu sortieren.

Es sieht so aus, als ob möglicherweise redundante Dateien in / usr / bin, / usr / local / bin, / usr / local / Cellar / python und /Users/[user‹/.local/bin enthalten sind

Das Folgende sind Reproduktionen von Befehlen:

$ which python3
/usr/bin/python3
$ which python
/usr/bin/python
$ which pip
pip not found
$ which pip3
/usr/bin/pip3
$ pip3 -V
Traceback (most recent call last):
  File "/Library/Developer/CommandLineTools/usr/bin/pip3", line 10, in <module>
    sys.exit(main())
TypeError: 'module' object is not callable
$ cat ~/.zshrc
export PATH=$PATH:/usr/local/bin:/usr/bin
$ echo $PATH
/Users/[user]/.local/bin:/bin:/usr/bin:/usr/local/bin:/Users/[user]/anaconda3/bin:/Users/[user]/anaconda3/bin:/Users/[user]/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/[user]/anaconda3:/Library/TeX/texbin:/usr/local/share/dotnet:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Applications/Xamarin Workbooks.app/Contents/SharedSupport/path-bin:/usr/local/bin:/usr/bin:/usr/local/bin:/usr/bin

Kann mir jemand bei der Fehlerbehebung helfen? Soweit ich weiß: Ich brauche nur Python2.x für das Betriebssystem. mit Catalina sollte ich jetzt Python3.x nur in meinem User speichern (nicht in / usr)? pip3 wird automatisch mit Python3.x installiert (obwohl meins einen Fehler zurückgibt) und sollte auch in meinem Benutzer installiert werden und nicht in / usr? Außerdem enthält mein $ PATH noch Reste, z. B. Anaconda, die ich inzwischen entfernt habe ... wie / wo aktualisiere ich meinen $ PATH? In der zshrc-Datei?


Es scheint, dass unabhängig von Änderungen (z. B. habe ich Anaconda aus meiner Datei / etc / path entfernt, weil ich sie nicht mehr verwende), welche Python und welche Python3 auf / usr / bin anstelle eines anderen Speicherorts verweisen.
ABl.

1
which -a Wird dir zeigen alle möglichen übereinstimmenden Pfade in der Reihenfolge an, in der sie angezeigt werden PATH. Diese Informationen können sich als nützlich erweisen.
Chepner

Ich habe das gleiche Problem nach dem Update pipmit sudo pip3 install ---upgrade pipCatalina. Die Verwendung von python3 -m pipsitll funktioniert jedoch. Sie können dies als Problemumgehung verwenden.
Jonas Drotleff

Antworten:


8

Ich habe dieses Problem nach einer Neuinstallation von Catalina festgestellt. Ich benutze auch zsh.

Was habe ich falsch gemacht:

Ich habe eine neue Version von installiert, pipindem ich :

sudo pip3 install --upgrade pip

wie aufgefordert. Dies funktioniert jedoch nicht mit Apple python, da der Pfad nicht korrekt ist. Stattdessen sudo -Hsollte verwendet werden.

Wie ich pip reparierte:

Zum Glück python3 -m pipfunktioniert immer noch als Workaround für pip3.

Installieren Sie eine ältere Version von pip(in meinem Fall 19.3.0war ausreichend):

sudo -H python3 -m pip install --upgrade pip==19.3.0

und dann erneut aktualisieren:

sudo -H python3 -m pip install --upgrade pip

Ich hoffe, dass dies auch Ihr Problem lösen wird.


0

Ich hatte das gleiche Problem wie Sie. Gelöst mit

brew install python3

1
Genau das gleiche Setup und Fehler wie OP, dadurch nicht gelöst.
Melka

0

Ich habe das Problem durch Löschen von ~ / Library / Python gelöst.


Bitte stellen Sie bei jeder Beantwortung einer Frage oder beim Hinzufügen eines Kommentars sicher, dass das Format für andere Personen verständlich und sinnvoll ist, wenn ein neuer Benutzer hereinkommt.
ashwin agrawal

0

Ich bin auch auf dieses Problem bei einer Neuinstallation von MacOS Catalina mit Kitty-Begriff gestoßen emulator + ohmyzsh .

Das Lesen dieser Frage führte mich zu meiner, bei .zshrcder die Zeile noch kommentiert war

\#export PATH=$HOME/bin:/usr/local/bin:$PATH

Ich habe den Kommentar entfernt, der dem PATH $ HOME / bin hinzugefügt hat

~/.zshrc

export PATH=$HOME/bin:/usr/local/bin:$PATH

Durch diese Änderung konnte ich den pip3Befehl ohne den Traceback-Fehler erfolgreich ausführen .


0

Ich hatte ein ähnliches Problem. Sie können verwenden

rehash

in Ihrer Befehlszeile, um Ihre Pfade zu aktualisieren. Es hat das Problem für mich gelöst.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.