DEV Community

Erick Eduardo Ramos
Erick Eduardo Ramos

Posted on

Cómo solucionar `OSError: [Errno 13] Permission denied` al usar `pip install`

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 pip del sistema operativo (no el de un entorno virtual)
  • El sistema tiene configurado Python y pip para instalar globalmente en directorios protegidos
  • Estás ejecutando pip sin los permisos necesarios, o sin usar sudo (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
Enter fullscreen mode Exit fullscreen mode

2. Activa el entorno

source venv/bin/activate
# En Windows: venv\Scripts\activate
Enter fullscreen mode Exit fullscreen mode

3. Instala las dependencias dentro del entorno

pip install -r requirements.txt
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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/
Enter fullscreen mode Exit fullscreen mode

⚠️ 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
Enter fullscreen mode Exit fullscreen mode

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)