Problemy z używaniem zsh z Cataliną, Python / Python3, pip / pip3, PATH, zshrc itp.

14

Niedawno zaktualizowałem do Cataliny i domyślnego zsh. Prawdopodobnie pomieszałem ścieżki podczas przejścia i obecnie próbuję uporządkować lokalizacje Python3.7, pip3, PATH wiersza poleceń i mojego pliku zshrc.

Wygląda na to, że w / usr / bin, / usr / local / bin, / usr / local / Cellar / python i /Users/[user]/.local/bin znajdują się

Oto reprodukcje poleceń:

$ 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

Czy ktoś może mi pomóc w rozwiązaniu tego problemu? Z tego, co rozumiem: potrzebuję tylko Python2.x dla systemu operacyjnego; z Cataliną powinienem teraz przechowywać Python3.x tylko w obrębie mojego użytkownika (nie w / usr)? pip3 jest automatycznie instalowany z Python3.x (chociaż mój zwraca błąd), a także powinien być instalowany w ramach mojego użytkownika, a nie w / usr? Ponadto moja $ PATH nadal zawiera resztki, np. Anakondę, którą usunąłem ... jak / gdzie mogę zaktualizować moją $ PATH? W pliku Zshrc?

OJT
źródło
Wygląda na to, że niezależnie od edycji (np. Usunąłem anakondę z mojego pliku / etc / paths, ponieważ już go nie używam), który python i który python3 wskazują na / usr / bin zamiast innej lokalizacji.
OJT
1
which -apokaże wszystkie możliwe ścieżki, które pasują, w kolejności, w jakiej się pojawiają PATH. Informacje te mogą okazać się przydatne.
chepner
Jestem przeżywa ten sam problem po aktualizacji pipprzy użyciu sudo pip3 install ---upgrade pipna Catalina. Jednak korzystanie z python3 -m pipsitll działa. Możesz użyć tego jako obejścia.
Jonas Drotleff,

Odpowiedzi:

8

Ten problem wystąpił po czystej instalacji Cataliny. Ja też używam zsh.

Co zrobiłem źle:

Zainstalowałem nową wersję pipza pomocą:

sudo pip3 install --upgrade pip

zgodnie z monitem. Nie będzie to jednak działać z urządzeniami Apple python, ponieważ ścieżka nie będzie poprawna. Zamiast tego sudo -Hnależy użyć.

Jak naprawiłem pip:

Na szczęście python3 -m pipnadal działa jako obejście pip3.

Zainstaluj starszą wersję pip(w moim przypadku 19.3.0było wystarczające):

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

a następnie ponownie zaktualizuj:

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

Mam nadzieję, że to rozwiąże również Twój problem.

Jonas Drotleff
źródło
0

Miałem ten sam problem co ty. Rozwiązany z

brew install python3
Stev3
źródło
1
Dokładnie taka sama konfiguracja i błąd jak OP, nie rozwiązany przez to.
Melka
0

Rozwiązałem problem, usuwając ~ / Library / Python.

okkwon
źródło
Za każdym razem, gdy odpowiadasz na pytanie lub dodajesz komentarz, upewnij się, że jest on w formacie zrozumiałym dla innych osób i ma sens, jeśli wejdzie nowy użytkownik.
ashwin agrawal
0

Pracowałem również nad tym problemem przy nowej instalacji MacOS Catalina z terminem Kitty emulator + ohmyzsh.

Czytanie tego pytania doprowadziło mnie do mojego, .zshrcktóry wciąż był komentowany

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

Usunąłem komentarz, który dodał ścieżkę $ HOME / bin do ŚCIEŻKI

~/.zshrc

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

Ta zmiana pozwoliła mi pomyślnie uruchomić pip3polecenie bez błędu śledzenia.

Motek
źródło
0

Miałem podobny problem. Możesz użyć

rehash

w wierszu polecenia, aby zaktualizować ścieżki. To rozwiązało problem dla mnie.

00schneider
źródło