Problemas usando zsh com Catalina, Python / Python3, pip / pip3, PATH, zshrc, etc

14

Atualizei recentemente para Catalina e o zsh padrão. Provavelmente eu baguncei os caminhos durante a transição e, atualmente, estou tentando resolver os locais do Python3.7, pip3, o PATH da linha de comando e o meu arquivo zshrc.

Parece que existem arquivos potencialmente redundantes contidos em / usr / bin, / usr / local / bin, / usr / local / Cellar / python e /Users/[user{//local/bin

A seguir, reproduções 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

Alguém pode me ajudar a solucionar tudo isso? Pelo que entendi: eu só preciso do Python2.x para SO; com Catalina, agora devo armazenar o Python3.x somente dentro do meu usuário (não em / usr)? O pip3 é instalado automaticamente com o Python3.x (embora o meu esteja retornando um erro) e também deve ser instalado dentro do meu usuário e não em / usr? Além disso, meu $ PATH ainda contém restos, como o Anaconda, que eu removi desde então ... como / onde atualizo meu $ PATH? Dentro do arquivo zshrc?

OJT
fonte
Parece que, independentemente das edições (por exemplo, removi o anaconda do meu arquivo / etc / caminhos porque não o uso mais), qual python e qual python3 apontam para / usr / bin em vez de outro local.
OJT
11
which -amostrará todos os caminhos possíveis correspondentes, na ordem em que aparecem PATH. Essa informação pode ser útil.
Chepner # 18/19
Estou enfrentando o mesmo problema após a atualização pipusando o sudo pip3 install ---upgrade pipCatalina. No entanto, o uso de python3 -m pipsitll funciona. Você pode usar isso como uma solução alternativa.
Jonas Drotleff

Respostas:

8

Eu enfrentei esse problema após uma instalação limpa do Catalina. Eu também estou usando zsh.

O que eu fiz de errado:

Instalei uma nova versão pipusando:

sudo pip3 install --upgrade pip

conforme solicitado. No entanto, isso não funcionará com a Apple python, pois o caminho não estará correto. Em vez disso, sudo -Hdeve ser usado.

Como eu corrigi o pip:

Felizmente, python3 -m pipainda funciona como uma solução alternativa para pip3.

Instale uma versão mais antiga do pip(no meu caso, 19.3.0era suficiente):

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

e depois atualize novamente:

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

Espero que isso também resolva seu problema.

Jonas Drotleff
fonte
0

Eu tive o mesmo problema que você. Resolvido com

brew install python3
Stev3
fonte
11
Exatamente a mesma configuração e erro que o OP, não resolvido por isso.
Melka
0

Resolvi o problema excluindo ~ / Library / Python.

okkwon
fonte
Por favor, sempre que responder a uma pergunta ou acrescentar qualquer comentário, certifique-se que ele está em tal formato que é compreensível por outras pessoas e faz sentido, se um novo usuário entra.
ashwin agrawal
0

Eu também estava correndo para esse problema em uma nova instalação do MacOS Catalina com o termo Kitty emulator + ohmyzsh.

A leitura desta pergunta me levou à minha, .zshrcque ainda tinha a linha comentada

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

Eu removi o comentário, que adicionou o $ HOME / bin ao PATH

~/.zshrc

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

Essa alteração me permitiu executar o pip3comando com sucesso sem o erro de rastreamento.

Hank
fonte
0

Eu tive um problema parecido. Você pode usar

rehash

na sua linha de comando para atualizar seus caminhos. Isso resolveu o problema para mim.

00schneider
fonte