Problemas al usar zsh con Catalina, Python / Python3, pip / pip3, PATH, zshrc, etc.

14

Recientemente actualicé a Catalina y el zsh predeterminado. Probablemente estropeé las rutas durante la transición, y actualmente estoy tratando de ordenar las ubicaciones de Python3.7, pip3, la ruta de línea de comandos y mi archivo zshrc.

Parece que hay archivos potencialmente redundantes contenidos en / usr / bin, / usr / local / bin, / usr / local / Cellar / python y /Users/[userfont>/.local/bin

Las siguientes son reproducciones de comandos:

$ 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

¿Alguien puede ayudarme a solucionar todo esto? Por lo que entiendo: solo necesito Python2.x para OS; con Catalina, ¿ahora debería almacenar Python3.x solo dentro de mi usuario (no en / usr)? pip3 se instala automáticamente con Python3.x (aunque el mío devuelve un error) y también debe instalarse en mi Usuario y no en / usr? Además, mi $ PATH todavía contiene restos, por ejemplo, Anaconda, que he eliminado desde entonces ... ¿cómo / dónde actualizo mi $ PATH? Dentro del archivo zshrc?

OJT
fuente
Parece que, independientemente de las ediciones (por ejemplo, eliminé anaconda de mi archivo / etc / path porque ya no lo estoy usando), qué python y qué python3 apuntan a / usr / bin en lugar de otra ubicación.
OJT
1
which -ale mostrará todas las rutas posibles que coinciden, en el orden en que aparecen PATH. Esa información puede resultar útil.
chepner
Estoy experimentando el mismo problema después de actualizar pipusando sudo pip3 install ---upgrade pipCatalina. Sin embargo, el uso de python3 -m pipsitll funciona. Podrías usar esto como una solución alternativa.
Jonas Drotleff

Respuestas:

8

He experimentado este problema después de una instalación limpia de Catalina. También estoy usando zsh.

Que hice mal:

He instalado una nueva versión de pipusando:

sudo pip3 install --upgrade pip

como se le solicite. Sin embargo, esto no funcionará con Apple python, ya que la ruta no será correcta. En cambio, sudo -Hdebe ser utilizado.

Cómo arreglé el pip:

Afortunadamente, python3 -m piptodavía funciona como una solución alternativa pip3.

Instalar una versión anterior de pip(en mi caso, 19.3.0fue suficiente):

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

y luego actualizar de nuevo:

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

Espero que esto también resuelva tu problema.

Jonas Drotleff
fuente
0

Tuve el mismo problema que tú. Resuelto con

brew install python3
Stev3
fuente
1
Exactamente la misma configuración y error que OP, no resuelto por esto.
Melka
0

Resolví el problema eliminando ~ / Library / Python.

okkwon
fuente
Por favor, cada vez que se contesta a una pregunta o cualquier comentario, asegúrese de que está en un formato que es comprensible por otras personas y tiene sentido, si un nuevo usuario entra en juego.
Ashwin Agrawal
0

También me encontré con este problema en una nueva instalación de MacOS Catalina con el término Kitty emulator + ohmyzsh.

Leer esta pregunta me llevó a mi .zshrcque todavía tenía la línea comentada

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

Eliminé el comentario, que agregó $ HOME / bin a la RUTA

~/.zshrc

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

Este cambio me permitió ejecutar con éxito el pip3comando sin el error de rastreo.

Madeja
fuente
0

Tuve un problema similar. Puedes usar

rehash

en su línea de comando para actualizar sus rutas. Resolvió el problema para mí.

00schneider
fuente