Cómo solucionar el error de permiso al ejecutar `pip.exe` en un entorno virtual de Python en Windows

작성자

카테고리:

← 피드로
DEV Community · Erick Eduardo Ramos · 2026-07-25 개발(SW)

Erick Eduardo Ramos

Cómo solucionar el error de permiso al ejecutar pip.exe en un entorno virtual de Python en Windows

Explicación técnica

El problema ocurre porque pip.exe en el directorio Scripts/ de un entorno virtual es un launcher empaquetado (un ejecutable ZIP autocontenido) que incluye una ruta fija a python.exe y el script __main__.py de pip. Cuando este launcher se rompe o apunta a una versión incorrecta/inaccesible de python.exe, falla con el error Access is denied, incluso si los permisos del archivo son correctos.

Esto suele suceder cuando:

  • Se instalan múltiples versiones de Python y se mezclan rutas (especialmente entre instaladores de python.org y Microsoft Store).
  • Se crea el entorno virtual con una versión de Python, y luego se desinstala esa versión (pero el launcher sigue apuntando a una ruta inválida).
  • Se copia o mueve el entorno virtual sin regenerar los launchers.
  • Hay corrupción en el archivo pip.exe (por ejemplo, por un fallo de disco o antivirus).

El hecho de que python -m pip funcione correctamente confirma que el problema está específicamente en el launcher pip.exe, no en pip en sí ni en los permisos del sistema.

Pasos para solucionarlo

✅ Paso 1: Eliminar los launchers corruptos del entorno virtual

# En el directorio raíz del proyecto (donde está tu venv)
rm -rf venv/Scripts/pip.exe
rm -rf venv/Scripts/pip3.exe
rm -rf venv/Scripts/pip-script.py
rm -rf venv/Scripts/pip3-script.py

Enter fullscreen mode Exit fullscreen mode

⚠️ En Windows, usa cmd.exe o PowerShell (no bash) para ejecutar estos comandos si usas rm, o usa del:

del /Q "venvScriptspip.exe"
del /Q "venvScriptspip3.exe"
del /Q "venvScriptspip-script.py"
del /Q "venvScriptspip3-script.py"

✅ Paso 2: Regenerar los launchers correctamente

# Asegúrate de no tener activado el entorno virtual
# Ejecuta desde fuera del venv:
python -m venv --clear venv

Enter fullscreen mode Exit fullscreen mode

Esto recrea todo el entorno desde cero, incluyendo launchers válidos.

Si ya tienes dependencias instaladas y no quieres perderlas, usa --upgrade-deps (Python ≥3.9):

python -m venv --upgrade-deps venv

✅ Paso 3: Verificar que pip.exe funciona

"C:Users<tu_usuario><ruta_proyecto>venvScriptspip.exe" --version

Enter fullscreen mode Exit fullscreen mode

Debería mostrar algo como:

pip 23.2.1 from C:Users...venvLibsite-packagespip (python 3.10)

Bloque de código corregido (comando final para reinstalar en modo editable)

cd <tu_directorio_proyecto>
venvScriptsactivate
pip install -e .

Enter fullscreen mode Exit fullscreen mode

Ahora funcionará sin errores de permiso.

Pro-tip: Evita este problema en el futuro

  • Nunca mezcles instaladores de Python.org y Microsoft Store en el mismo sistema. Usa solo uno (recomendado: instalador desde python.org).
  • Evita mover o copiar entornos virtuales. Si necesitas portabilidad, usa pip freeze > requirements.txt y recrea el entorno en el destino.
  • Usa python -m pip en lugar de pip como práctica estándar. Es más robusto y evita problemas con launchers:
  python -m pip install -e .

Enter fullscreen mode Exit fullscreen mode

  • Si trabajas con múltiples versiones de Python, usa py -X.Y para invocar la versión exacta:
  py -3.10 -m venv venv

Enter fullscreen mode Exit fullscreen mode

🔍 Nota clave: El script de diagnóstico de Eryk Sun es útil para inspeccionar el contenido interno de pip.exe, pero no es necesario ejecutarlo si ya has confirmado que python -m pip funciona y pip.exe falla. La solución definitiva es regenerar el entorno virtual con --clear o recrearlo desde cero.

원문에서 계속 ↗

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다