Python / Resolver «Acceso denegado» al instalar con pip en Windows

Si pip muestra [WinError 5] Acceso denegado en Windows, examine primero la ruta del archivo y el Python utilizado. Si apunta a un site-packages global protegido, cree un entorno virtual en una carpeta de proyecto escribible y ejecute pip con su Python. Los archivos en uso y las rutas temporales bloqueadas requieren su propio diagnóstico; ejecutar como administrador no resuelve todas las causas.

Leer la ruta junto al número de error

El código de Windows 5 indica acceso denegado. Lea el último error de pip para identificar qué archivo no pudo crear o sustituir. Una carpeta Python bajo Program Files requiere comprobaciones diferentes de una carpeta temporal.

Destino que falla Qué comprobar Siguiente acción
Lib\site-packages global Python elegido y permiso de escritura Aislar la instalación en el proyecto
Ejecutable Scripts o archivo de paquete existente Programas que lo usan y registros de bloqueo Cerrar solo el programa relacionado y reintentar
Temp, caché u otra carpeta Permisos, espacio y política de seguridad Investigar esa ubicación y solicitar revisión si procede
La instalación funciona pero import falla Mismo Python para instalar y ejecutar Comparar intérprete y Location del paquete

La tabla indica un orden de diagnóstico, no demuestra la causa solo por la ruta. En equipos administrados, siga el entorno aprobado. No abra indiscriminadamente permisos de carpetas del sistema ni desactive protecciones para evitar el error.

Identificar qué Python ejecuta pip

Ejecute los comandos en Windows PowerShell, no en el indicador Python >>>. Si no dispone de py -3, use la ruta del Python instalado o un comando python que apunte a él. Con varias versiones, seleccione el intérprete expresamente.

py -3 -c "import sys; print(sys.executable)"
py -3 -m pip --version

La primera línea muestra el ejecutable; la segunda, versión y ubicación de pip y versión de Python. python -m pip utiliza el Python elegido y evita que un comando pip aislado apunte a otro entorno. Compárelo con el intérprete que generó el error.

Instalar y verificar en el entorno del proyecto

Abra PowerShell en una carpeta de proyecto nueva y escribible. .venv es una carpeta de entorno virtual separada del código. No la cree encima de una carpeta que ya cumple otra función.

py -3 -m venv .venv
.\.venv\Scripts\python.exe -m pip --version

Compruebe que la ruta de pip está bajo .venv. Invocar directamente su Python evita scripts de activación y cambios en la política de PowerShell. Este ejemplo completo instala e importa Colorama 0.4.6; use las dependencias y versiones necesarias en su proyecto real.

.\.venv\Scripts\python.exe -m pip install "colorama==0.4.6"
.\.venv\Scripts\python.exe -c "import colorama, sys; print(colorama.__version__); print(sys.prefix != sys.base_prefix)"

Tras la instalación, el último comando muestra 0.4.6 y True en dos líneas. True indica un entorno virtual. El procedimiento se comprobó en Windows con Python 3.12.14 y pip 25.0.1 del entorno; las rutas y detalles del registro pueden variar.

.\.venv\Scripts\python.exe -m pip show colorama

En pip show, Location debe ser el .venv\Lib\site-packages del proyecto. Aunque import funcione en el terminal, el IDE puede elegir otro Python. Configure el mismo .venv\Scripts\python.exe en el proyecto.

--user como alternativa fuera del entorno virtual

La instalación --user utiliza la ubicación de paquetes del usuario de ese Python en vez del directorio global. Puede servir para uso personal sin aislamiento por proyecto, pero no separa sus versiones de paquetes. Identifique primero el intérprete base.

py -3 -m pip install --user "colorama==0.4.6"

El comando instala el ejemplo en su ruta de usuario. No lo añada al procedimiento del entorno virtual. Un entorno aislado normal rechaza --user porque la ubicación del usuario no es visible. Si aún falla por permisos dentro del entorno, investigue la ruta real en vez de añadir esa opción.

Si sigue fallando o falta pip

Lea el mensaje final antes de atribuirlo todo a permisos. No matching distribution found, certificados, proxy y red requieren comprobar compatibilidad o conexión. Alinee Python y requisitos mediante la guía de instalación de paquetes.

Si el entorno nuevo indica No module named pip, repare su pip así. ensurepip prepara el pip incluido con Python, sin garantizar la versión más reciente de internet.

.\.venv\Scripts\python.exe -m ensurepip --upgrade
.\.venv\Scripts\python.exe -m pip --version

Si el Python base carece de ensurepip o la creación sigue fallando, revise componentes y rutas de la distribución. Cierre normalmente un programa identificado como usuario de los archivos antes de reintentar. Para bloqueos de protección, revise el evento y la política permitida. Use instalación administrativa solo cuando sea el procedimiento de despliegue gestionado previsto.

Deshacer la instalación de ejemplo

Para eliminar solo el Colorama instalado en este entorno nuevo, use lo siguiente. -y omite la confirmación: compruebe antes entorno y paquete.

.\.venv\Scripts\python.exe -m pip uninstall -y colorama

pip uninstall elimina un paquete del entorno elegido. Puede quitar un entorno nuevo innecesario tras comprobar que no contiene código ni lo usan otros proyectos. Si modificó un proyecto existente, restaure sus versiones registradas. Un informe útil incluye comando, rutas Python y pip, último error y archivo afectado.