Pip: no se puede instalar un paquete
Resuelto5 respuestas
-
¡Hey!
¿Has visto las últimas líneas de tu CMD? (access denied -> falta de permisos y para pip te da el comando para la actualización).
Ainoa.
-
Hola
¿realmente necesitas Python 3.6?
Ya estamos en la 3.12, con su pip incluido.
Cuando era pequeño, el Mar Muerto solo estaba enfermo.
George Burns -
intenté cambiar los permisos del sistema pero sin éxito :(
tengo un error similar cuando hago pip install --upgrade pip
-
-
Hola,
Respuesta corta
El paquete pip que intentas actualizar está desplegado en las carpetas del sistema (no en tu carpeta de usuario). Por ello no puedes actualizarlo con un perfil de usuario (que no tiene suficientes derechos): hay que actualizarlo con derechos de administrador (ver #1 y #5).
Las otras aproximaciones posibles consisten en desplegar pip:
- ya sea en tu carpeta de usuario;
- o en un entorno virtual.
Respuesta detallada
Hay que entender que puedes tener varios entornos de Python en los que instalar un paquete:
- a nivel del sistema (solamente modificable por el administrador)
- a nivel de la carpeta del usuario
- en un entorno virtual (volveré a ello más tarde).
Estos entornos no son exclusivos: un mismo paquete puede en absoluto estar instalado en todos estos lugares. Y pip no escapa a la regla, porque él mismo es un paquete.
La pregunta ahora es dónde debe instalarse el paquete. Si el entorno involucrado es el sistema, se requieren derechos de root. De lo contrario, bastan derechos de usuario. En #3 intentas, manifiestamente, intervenir con derechos de usuario sobre un paquete desplegado con derechos de administrador. Por lo tanto, tienes derechos insuficientes, de ahí el error.
Instalar pip en la carpeta del usuario
Como ya mencioné en la sección anterior, nada impide instalar pip tanto en las carpetas del sistema como en la carpeta de usuario. En ese caso el pip "de usuario" debería primar sobre el pip "administrador". Para convencerse, basta con mirar tu variable de entorno PATH. Puede ser útil cuando no eres administrador en tu máquina, pero necesitas como usuario otra versión de pip.
Usar pip: ¿usuario o administrador?
Independientemente de dónde esté instalado pip, el contexto en el que llamas pip es determinante, ya que decidirá en qué entorno vas a intervenir:
- Si utilizas tu perfil de usuario y haces un pip install (o pip install -U, o pip remove), entonces intentas desplegar (o actualizar, o eliminar) el paquete en tu carpeta de usuario;
- Si utilizas tu perfil de administrador y haces un pip install (o pip install -U, o pip remove), entonces intentas desplegar (o actualizar, o eliminar) el paquete en las carpetas del sistema. Y en ese caso, solo el administrador podrá intervenir sobre este paquete.
Para ir más allá: los entornos virtuales
El entorno virtual (virtual environment en inglés, a menudo abreviado venv) es la forma clásica (y propuesta por PyCharm) de aislar un proyecto de los posibles paquetes instalados en la carpeta del usuario o en las carpetas del sistema (incluido pip).
- Ventajas :
- El proyecto está completamente aislado y, por tanto, es inmune a lo que ocurre en las carpetas del sistema y del usuario (paquetes instalados + versión).
- Nos aseguramos de haber determinado todas las dependencias del proyecto.
- Desventajas :
- Hay que haber determinado todas las dependencias del proyecto (en un proyecto, a menudo se enumeran en requirements.txt o en pyproject.toml).
- Cada vez que quieras usar el proyecto, hay que activar este entorno virtual (a menos que las dependencias también estén desplegadas en el sistema y/o la carpeta de usuario).
- Even si estas dependencias ya están instaladas en la carpeta de usuario y/o en el sistema, se instalan de nuevo en el entorno virtual, lo que a la larga consume más espacio en disco.
Bonne chance