pip / python: los paquetes de sitio normales no se pueden escribir

11

Tengo un nuevo Macbook: un usuario lo instaló y luego instalé un nuevo usuario (el mío), otorgé privilegios de administrador y eliminé el anterior. Estoy en OS Catalina.

Desde la instalación he tenido varios problemas de permisos. VSCode no puede encontrar Jupyter Notebook, pipinstala paquetes en ~/Library/Python/3.7/site-packages.

Cuando lo hago which python3me sale usr/bin/python3. Cuando lo hago pip3 install <package>, obtengo: Defaulting to user installation because normal site-packages is not writeableY luego dice que ya se ha instalado, aunque no puedo acceder a él cuando lo hago import <package>.

Parece claro que se trata de un problema de permiso, pipno se puede instalar en la python "base" y pythonno pueden encontrar en qué me he instalado ~/Library/Python/3.7/site-packages.

Intenté reinstalar el sistema operativo, pero como no hice una instalación limpia, no cambió nada. ¿Qué me estoy perdiendo? ¿Cómo exactamente puedo arreglar los permisos? ¿Dónde quiero que se instalen los paquetes ( venvclaro, pero algunos paquetes que quiero global (como jupyter).

Gracias

minúscula00
fuente
Estoy teniendo este problema también. Me pregunto si tiene que ver con el final del soporte de Python 2.7
Chris Dutrow
Tengo el mismo problema
Mahyar Maleki
1
¿Estás seguro de que estás utilizando el correcto pip? ¿Qué pasa si usa el mucho más seguro python -m pip install ....?
Tom de Geus
@TomdeGeus: Bueno, python3 -m pip install ...en este caso, pero sí, cuando hay varias versiones de Python involucradas, es mucho más seguro invocar a piptravés del enfoque del "módulo exec", así que sabes que estás usando el ejecutable Python esperado.
ShadowRanger
Para solucionar esto, terminé desinstalando python3 (previamente instalado con brew) y usando pyenv para instalar python3. Ahora todo funciona. Seguí esta guía: opensource.com/article/19/5/python-3-default-mac (salta a la última sección)
Arseny Levin

Respuestas:

2

Es mejor no usar el Python proporcionado por el sistema directamente. Deje eso solo, ya que el sistema operativo puede cambiarlo de manera no deseada, como lo experimentó.

La mejor práctica es configurar sus propias versiones de Python y administrarlas por proyecto utilizando virtualenv(para Python 2) o venv(para Python 3). Esto elimina toda dependencia de la versión de Python proporcionada por el sistema, y ​​también aísla cada proyecto de otros proyectos en la máquina.

Cada proyecto puede tener una versión de punto Python diferente si es necesario, y obtiene su propio site_packagesdirectorio para que las bibliotecas instaladas en pip también puedan tener diferentes versiones por proyecto. Este enfoque es un gran evitador de problemas.

Chris Johnson
fuente
0

Tuve este mismo problema en una nueva instalación de Debian 9.12. Reiniciar mi servidor resolvió el problema.

Chris S
fuente