DEV Community

Erick Eduardo Ramos
Erick Eduardo Ramos

Posted on

Cómo solucionar \"Access Denied\" al usar `pip install` en Windows

Cómo solucionar "Access Denied" al usar pip install en Windows

¿Por qué ocurre este error?

El error [Error 5] Access is denied durante la instalación de paquetes con pip en Windows ocurre principalmente por problemas de permisos en archivos temporales generados durante la compilación de dependencias nativas (como .pyd, .dll, etc.). Aunque ejecutes CMD/PowerShell como administrador, pip puede seguir intentando escribir en directorios temporales donde tu usuario no tiene permisos completos, especialmente cuando:

  • El usuario no tiene permisos de Full Control sobre %TEMP% (C:\Users\<usuario>\AppData\Local\Temp)
  • Hay procesos previos bloqueando archivos .pyd o .dll
  • pip intenta instalar paquetes que requieren compilación (como cryptography, cffi, etc.)
  • Hay instalaciones múltiples de Python con conflictos de rutas y permisos

Solución definitiva (pasos verificados)

✅ Paso 1: Limpiar archivos temporales bloqueados

:: Ejecuta como ADMINISTRADOR
rd /s /q %TEMP%
mkdir %TEMP%
Enter fullscreen mode Exit fullscreen mode

⚠️ Importante: Esto elimina todos los archivos temporales. Asegúrate de cerrar todas las aplicaciones antes de ejecutarlo.

✅ Paso 2: Instalar usando el intérprete de Python directamente

python -m pip install --upgrade pip
python -m pip install --no-cache-dir mitmproxy
Enter fullscreen mode Exit fullscreen mode

¿Por qué funciona python -m pip?

Porque ejecuta pip como módulo de Python, heredando los permisos del proceso de Python (que normalmente tiene permisos correctos sobre su propio entorno), evitando problemas con el contexto de ejecución de pip.exe.

✅ Paso 3: Si persiste, forzar instalación sin compilación (wheel)

python -m pip install --only-binary=all mitmproxy
Enter fullscreen mode Exit fullscreen mode

Esto evita la compilación de dependencias nativas (.pyd, etc.), instalando solo wheels precompilados. Si falla, instala primero cryptography con wheel:

python -m pip install --only-binary=cryptography cryptography

✅ Paso 4: Verificar y corregir permisos en %TEMP%

:: Ejecuta como ADMINISTRADOR
takeown /f "%TEMP%\*" /r /d y
icacls "%TEMP%\*" /reset /t
Enter fullscreen mode Exit fullscreen mode

Bloque de código corregido (copiar y pegar)

:: 1. Limpiar temp (como ADMIN)
rd /s /q %TEMP% && mkdir %TEMP%

:: 2. Actualizar pip y mitmproxy sin cache
python -m pip install --upgrade pip
python -m pip install --no-cache-dir mitmproxy
Enter fullscreen mode Exit fullscreen mode

Resultado esperado: Instalación exitosa sin errores de acceso denegado.


Pro-Tip: Prevención a largo plazo

  • Usa entornos virtuales para evitar conflictos de permisos globales:
  python -m venv .venv
  .venv\Scripts\activate
  pip install mitmproxy
Enter fullscreen mode Exit fullscreen mode
  • Instala Python desde Microsoft Store o python.org (verifica la opción Add Python to PATH y Install for all users si es necesario).
  • Evita instalar como --user si usas entornos virtuales (conflicto de rutas).
  • Si usas WSL2, instala directamente en Linux (evita problemas de permisos en NTFS).

🔍 Nota clave: El error no es de pip en sí, sino de la interacción entre Windows, permisos de archivos .pyd y procesos de compilación. La solución con python -m pip es la más confiable porque ignora el pip.exe (que puede tener permisos corruptos) y usa el módulo integrado.

Top comments (0)