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
.pydo.dll -
pipintenta instalar paquetes que requieren compilación (comocryptography,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%
⚠️ 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
¿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
Esto evita la compilación de dependencias nativas (
.pyd, etc.), instalando solo wheels precompilados. Si falla, instala primerocryptographycon 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
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
✅ 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
- 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
--usersi 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
pipen sí, sino de la interacción entre Windows, permisos de archivos.pydy procesos de compilación. La solución conpython -m pipes la más confiable porque ignora elpip.exe(que puede tener permisos corruptos) y usa el módulo integrado.
Top comments (0)