Cómo solucionar OSError: [Errno 13] Permission denied al usar pip install
¿Por qué ocurre este error?
El error ocurre porque pip intenta instalar paquetes en un directorio del sistema (como /usr/local/lib/python2.7/dist-packages/) que requiere permisos de administrador (root). Esto sucede cuando:
- Estás usando el
pipdel sistema operativo (no el de un entorno virtual) - El sistema tiene configurado Python y pip para instalar globalmente en directorios protegidos
- Estás ejecutando
pipsin los permisos necesarios, o sin usarsudo(que no es recomendable por seguridad)
Pasos para solucionarlo definitivamente
✅ Solución recomendada: Usa entornos virtuales (vía venv o conda)
1. Crea un entorno virtual aislado
python3 -m venv venv
# o si usas Python 2 (no recomendado, pero posible):
# virtualenv venv
2. Activa el entorno
source venv/bin/activate
# En Windows: venv\Scripts\activate
3. Instala las dependencias dentro del entorno
pip install -r requirements.txt
✅ Ventaja: No necesitas
sudo, no contaminas el sistema, y cada proyecto tiene sus propias dependencias.
⚠️ Solución alternativa (solo si NO puedes usar entornos virtuales)
Opción A: Instala solo para el usuario actual (sin sudo)
pip install --user -r requirements.txt
Esto instala en
~/.local/lib/..., evitando permisos de sistema.
Opción B: Cambia los permisos del directorio (riesgoso)
sudo chown -R $USER:$USER /usr/local/lib/python2.7/dist-packages/
# O más seguro:
sudo chown -R $USER:$USER /usr/local/lib/python3.x/dist-packages/
⚠️ Advertencia: Esto puede romper la gestión de paquetes del sistema operativo (especialmente en Debian/Ubuntu).
Bloque de código corregido (ejemplo práctico)
# 1. Crear entorno virtual
python3 -m venv django-env
# 2. Activar entorno
source django-env/bin/activate
# 3. Actualizar pip (opcional pero recomendado)
pip install --upgrade pip
# 4. Instalar dependencias
pip install -r requirements.txt
Pro-tip: Evita sudo pip install a toda costa
-
Riesgo de seguridad: Ejecutas código no verificado como
root. -
Conflicto con el gestor de paquetes del sistema:
apt,yum, etc., pueden romperse. - Dificultad para reproducir entornos: Las instalaciones globales se vuelven caóticas.
✅ Mejor práctica: Usa venv + pip install sin privilegios.
✅ Para producción: Usa contenedores Docker o sistemas como pipenv/poetry.
📌 Nota histórica: El error muestra Python 2.7. Python 2 está obsoleto desde 2020. Migrar a Python 3 es obligatorio para seguridad y soporte.
Top comments (0)