Cómo solucionar "Access Denied" al usar pip install en Windows
Explicación técnica
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 cryptography, cffi, etc.). Aunque ejecutes CMD/PowerShell como administrador, pip puede seguir intentando escribir en directorios temporales donde tu usuario no tiene permisos plenos.
El problema se agrava cuando:
- Tienes múltiples instalaciones de Python (PATH desordenado)
- El usuario no tiene permisos de escritura en
%TEMP% -
pipse ejecuta como un script independiente en lugar de como módulo de Python - Hay procesos previos bloqueando archivos
.pydo.dll
Pasos para solucionarlo definitivamente
1. Ejecuta pip como módulo de Python (no como comando independiente)
python -m pip install --upgrade pip
python -m pip install --user mitmproxy
2. Si persiste, limpia los archivos temporales problemáticos
del /f /q "%TEMP%\easy_install-*"
del /f /q "%TEMP%\pip-*"
rmdir /s /q "%TEMP%\pip-build-*"
3. Forzar instalación en modo usuario (evita permisos de sistema)
python -m pip install --user --force-reinstall --no-cache-dir mitmproxy
4. Verifica que tu usuario tenga permisos en %TEMP%
icacls "%TEMP%" /grant %USERNAME%:(F)
5. Como último recurso: instala como administrador con variables limpias
set TEMP=%USERPROFILE%\AppData\Local\Temp
set TMP=%USERPROFILE%\AppData\Local\Temp
python -m pip install --user mitmproxy
Bloque de código corregido (solución definitiva)
:: Paso 1: Actualizar pip como módulo
python -m pip install --upgrade pip
:: Paso 2: Limpiar archivos temporales problemáticos
del /f /q "%TEMP%\easy_install-*"
del /f /q "%TEMP%\pip-*"
rmdir /s /q "%TEMP%\pip-build-*" 2>nul
:: Paso 3: Instalar con flags de seguridad
python -m pip install --user --force-reinstall --no-cache-dir --no-deps mitmproxy
:: Paso 4: Si falla por dependencias, instalarlas por separado
python -m pip install --user cryptography
python -m pip install --user mitmproxy
Pro-tip
-
Nunca uses
pipdirectamente en Windows sin prefijopython -m. Esto garantiza que uses elpipasociado al intérprete Python específico que estás ejecutando. - Si trabajas con entornos virtuales, activa el entorno primero:
venv\Scripts\activate && python -m pip install mitmproxy - Para instalaciones globales en entornos corporativos, considera usar
--userpara evitar permisos de administrador. - Si usas Anaconda/Miniconda, prefiere
conda install cryptographyantes quepip install.
Top comments (0)