Problemi con zsh con Catalina, Python / Python3, pip / pip3, PATH, zshrc, ecc.


14

Di recente ho aggiornato a Catalina e lo zsh predefinito. Probabilmente ho incasinato i percorsi durante la transizione e attualmente sto cercando di riordinare le posizioni di Python3.7, pip3, la riga di comando PATH e il mio file zshrc.

Sembra che ci siano file potenzialmente ridondanti contenuti in / usr / bin, / usr / local / bin, / usr / local / Cellar / python e /Users/[user[/.local/bin

Le seguenti sono riproduzioni di comandi:

$ 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

Qualcuno può aiutarmi a risolvere tutto questo? Da quello che ho capito: ho solo bisogno di Python2.x per OS; con Catalina ora dovrei archiviare Python3.x solo all'interno del mio utente (non in / usr)? pip3 viene installato automaticamente con Python3.x (sebbene il mio stia restituendo un errore) e dovrebbe anche essere installato nel mio Utente e non in / usr? Inoltre, il mio $ PATH contiene ancora resti, ad esempio Anaconda, che ho rimosso da allora ... come / dove posso aggiornare il mio $ PATH? All'interno del file zshrc?


Sembra che indipendentemente dalle modifiche (ad esempio, ho rimosso anaconda dal mio file / etc / percorsi perché non lo sto più usando), quale python e quale python3 puntano a / usr / bin anziché in un'altra posizione.
OJT

1
which -ati mostrerà tutti i possibili percorsi che corrispondono, nell'ordine in cui appaiono PATH. Tali informazioni potrebbero rivelarsi utili.
Chepner,

Sto vivendo lo stesso problema dopo l'aggiornamento piputilizzando sudo pip3 install ---upgrade pipsu Catalina. Tuttavia, usando python3 -m pipsitll funziona. Puoi usarlo come soluzione alternativa.
Jonas Drotleff,

Risposte:


8

Ho riscontrato questo problema dopo un'installazione pulita di Catalina. Sto anche usando zsh.

Cosa ho sbagliato:

Ho installato una nuova versione di piputilizzando:

sudo pip3 install --upgrade pip

come richiesto. Tuttavia, questo non funzionerà con quello di Apple python, poiché il percorso non sarà corretto. Invece, sudo -Hdovrebbe essere usato.

Come ho riparato pip:

Fortunatamente, python3 -m pipfunziona ancora come soluzione alternativa per pip3.

Installa una versione precedente di pip(nel mio caso, 19.3.0era sufficiente):

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

e quindi aggiornare di nuovo:

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

Spero che questo risolva anche il tuo problema.


0

Ho avuto lo stesso problema con te. Risolto con

brew install python3

1
Stessa configurazione ed errore di OP, non risolti da questo.
Melka,

0

Ho risolto il problema eliminando ~ / Library / Python.


Per favore, ogni volta che rispondi a una domanda o aggiungi un commento, assicurati che sia in un formato che sia comprensibile da altre persone e abbia senso, se arriva un nuovo utente.
ashwin agrawal

0

Stavo anche affrontando questo problema su una nuova installazione di MacOS Catalina con termine Kitty emulator + ohmyzsh.

Leggere questa domanda mi ha portato al mio .zshrcche aveva ancora commentato la riga

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

Ho rimosso il commento, che ha aggiunto $ HOME / bin al PERCORSO

~/.zshrc

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

Questa modifica mi ha permesso di eseguire correttamente il pip3comando senza l'errore traceback.


0

Ho avuto un problema simile. Puoi usare

rehash

nella riga di comando per aggiornare i percorsi. Mi ha risolto il problema.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.