DEV Community

Erick Eduardo Ramos
Erick Eduardo Ramos

Posted on

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

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

¿Por qué ocurre este error?

El problema radica en que pip.exe es un launcher empaquetado que contiene una ruta fija a python.exe y un script __main__.py incrustado. Cuando creas un entorno virtual, este launcher se genera apuntando a la versión de Python que usaste para crearlo. Si después modificas o mueves el entorno, actualizas Python, o cambias el orden de las variables de entorno, el launcher sigue apuntando a una ruta antigua o inaccesible, causando el error "Access is denied" al intentar ejecutarlo.

Aunque los permisos del archivo (icacls) sean correctos (como confirmaste), el launcher falla porque no puede encontrar ni ejecutar el python.exe interno que espera. Esto es común tras reinstalar Python, usar múltiples versiones, o mover el entorno virtual.


Solución definitiva (pasos verificados)

✅ Paso 1: Elimina el pip.exe roto del entorno virtual

rm venv/Scripts/pip.exe
rm venv/Scripts/pip3.exe
rm venv/Scripts/pip-script.py  # opcional, pero recomendado
Enter fullscreen mode Exit fullscreen mode

⚠️ No uses pip uninstall pip — ese comando también fallará.

✅ Paso 2: Regenera pip.exe usando python -m pip install --force-reinstall pip

# Asegúrate de estar DENTRO del entorno virtual
venv\Scripts\activate

# Recrea pip.exe correctamente
python -m pip install --force-reinstall --no-deps pip
Enter fullscreen mode Exit fullscreen mode

Esto regenera el launcher con la ruta correcta a python.exe del entorno actual.

✅ Paso 3: Verifica que funcione

pip --version
# Debe mostrar algo como: pip 23.x.x from ...\venv\lib\site-packages\pip (python 3.10)
Enter fullscreen mode Exit fullscreen mode

Pro-tip: Evita este problema en el futuro

🔧 Usa siempre python -m pip en lugar de pip

python -m pip install -e .
Enter fullscreen mode Exit fullscreen mode

Esto evita usar el launcher roto y garantiza que se use el pip asociado al python.exe del entorno (sin depender de rutas embebidas).

🛠️ Si usas scripts de build/test, incluye esta verificación:

# En PowerShell o CMD:
if (Test-Path "venv\Scripts\pip.exe") {
    & "venv\Scripts\python.exe" -m pip install -e .
} else {
    python -m pip install -e .
}
Enter fullscreen mode Exit fullscreen mode

🧹 Si el entorno está corrupto, recrea todo el entorno:

# Desde fuera del entorno
rm -r venv
python -m venv venv
venv\Scripts\activate
python -m pip install --upgrade pip
pip install -e .
Enter fullscreen mode Exit fullscreen mode

💡 Nota crítica: El error nunca es por permisos de archivo en entornos virtuales de usuario. Es siempre un problema de ruta embebida obsoleta en el launcher. La solución definitiva es regenerar pip.exe o evitarlo usando python -m pip.


🚀 ¿Quieres más soluciones técnicas?

Si te sirvió esta ayuda, suscríbete para recibir los errores más comunes de la semana y cómo evitarlos.
👉 Suscríbete aquí

Top comments (0)