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, pip
instala paquetes en ~/Library/Python/3.7/site-packages
.
Cuando lo hago which python3
me sale usr/bin/python3
. Cuando lo hago pip3 install <package>
, obtengo: Defaulting to user installation because normal site-packages is not writeable
Y 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, pip
no se puede instalar en la python "base" y python
no 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 ( venv
claro, pero algunos paquetes que quiero global (como jupyter
).
Gracias
pip
? ¿Qué pasa si usa el mucho más seguropython -m pip install ....
?python3 -m pip install ...
en este caso, pero sí, cuando hay varias versiones de Python involucradas, es mucho más seguro invocar apip
través del enfoque del "módulo exec", así que sabes que estás usando el ejecutable Python esperado.Respuestas:
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) ovenv
(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_packages
directorio para que las bibliotecas instaladas en pip también puedan tener diferentes versiones por proyecto. Este enfoque es un gran evitador de problemas.fuente
Tuve este mismo problema en una nueva instalación de Debian 9.12. Reiniciar mi servidor resolvió el problema.
fuente