pip / python: site-packages normais não é gravável

11

Eu tenho um novo Macbook - um usuário o instalou e, em seguida, instalei um novo usuário (meu), concedi privilégios de administrador e excluí o antigo. Estou no OS Catalina.

Desde a instalação, tenho tido vários problemas de permissão. O VSCode não consegue encontrar o Jupyter Notebook, pipinstala pacotes em ~/Library/Python/3.7/site-packages.

Quando which python3eu recebo usr/bin/python3. Quando pip3 install <package>recebo: Defaulting to user installation because normal site-packages is not writeableE depois diz que já foi instalado, mesmo que eu não possa acessá-lo quando o faço import <package>.

Parece claro que este é um problema de permissão, pipnão pode ser instalado no python "base" e eles pythonnão conseguem encontrar o que eu instalei ~/Library/Python/3.7/site-packages.

Tentei reinstalar o sistema operacional, mas como não fiz uma instalação limpa, isso não mudou nada. o que estou perdendo? Como exatamente posso corrigir permissões? Onde eu quero que os pacotes sejam instalados (com venvcerteza, mas alguns pacotes que eu quero global (como jupyter)).

obrigado

lowercase00
fonte
Eu estou tendo esse problema também. Gostaria de saber se isso tem a ver com o fim do suporte ao Python 2.7
Chris Dutrow
Estou tendo o mesmo problema
Mahyar Maleki
11
Tem certeza de que está usando o correto pip? E se você usar o muito mais seguro python -m pip install ....?
Tom de Geus
@ TomdeGeus: Bem, python3 -m pip install ...neste caso, mas sim, quando há várias versões do Python envolvidas, é muito mais seguro invocar pippor meio da abordagem "exec module", para que você saiba que está usando o esperado executável do Python.
ShadowRanger 18/02
Para corrigir isso, acabei desinstalando o python3 (instalado anteriormente com o brew) e usando o pyenv para instalar o python3. Agora tudo funciona. Siga este guia: opensource.com/article/19/5/python-3-default-mac (pule para a última seção)
Arseny Levin

Respostas:

2

É melhor não usar o Python fornecido pelo sistema diretamente. Deixe esse em paz, pois o sistema operacional pode alterá-lo de maneiras indesejadas, como você experimentou.

A melhor prática é configurar suas próprias versões do Python e gerenciá-las por projeto usando virtualenv(para Python 2) ou venv(para Python 3). Isso elimina toda a dependência da versão Python fornecida pelo sistema e também isola cada projeto de outros projetos na máquina.

Cada projeto pode ter uma versão de ponto Python diferente, se necessário, e obtém seu próprio site_packagesdiretório para que as bibliotecas instaladas pelo pip também possam ter versões diferentes por projeto. Essa abordagem é uma grande solução para os problemas.

Chris Johnson
fonte
0

Teve esse mesmo problema em uma nova instalação do Debian 9.12. A reinicialização do meu servidor resolveu o problema.

Chris S
fonte