Resolver

No se puede activar el entorno virtual en Python: causas y solución

Creaste el venv pero al activarlo falla, no aparece el (venv), o PowerShell bloquea el script. Las causas en Windows, macOS y Linux, cada una con su arreglo.

Creaste tu entorno virtual con python -m venv venv, intentas activarlo, y algo no funciona: el comando “no se reconoce”, PowerShell lanza un error rojo sobre ejecución de scripts, o simplemente no aparece el (venv) al inicio de la línea. Es uno de los tropiezos más comunes al empezar, y la causa cambia según tu sistema. Vamos por cada una.

Recordatorio: el comando de activación cambia por sistema

Antes de nada, el error más básico es usar el comando de otro sistema operativo. La ruta de activación no es la misma:

# Windows (CMD)
venv\Scripts\activate

# Windows (PowerShell)
venv\Scripts\Activate.ps1

# macOS / Linux
source venv/bin/activate

Si copiaste un tutorial hecho para Linux (source venv/bin/activate) y estás en Windows, no va a funcionar. Empieza por confirmar que usas el comando de tu sistema.

Windows: el error de PowerShell (el más común)

En PowerShell, al intentar activar, muchos ven esto:

No se puede cargar el archivo ...\Activate.ps1 porque la ejecución de
scripts está deshabilitada en este sistema.

No es un problema de Python ni de tu entorno. Windows, por seguridad, bloquea por defecto la ejecución de scripts de PowerShell. La solución es permitir los scripts firmados localmente. Abre PowerShell y ejecuta:

Set-ExecutionPolicy -Scope CurrentUser RemoteSigned

El -Scope CurrentUser es importante: cambia la política solo para tu usuario, no para todo el sistema, que es más seguro. Te pedirá confirmar; acepta con S. Después, venv\Scripts\Activate.ps1 funcionará.

Si prefieres no tocar la política de ejecución, hay un atajo: usa CMD en lugar de PowerShell, donde el comando venv\Scripts\activate funciona sin ese bloqueo.

”activate no se reconoce como comando”

Si te sale que activate no se reconoce, casi siempre es una de dos cosas.

La primera: el entorno no se creó bien o estás en la carpeta equivocada. Confirma que existe la carpeta venv con dir (Windows) o ls (macOS/Linux). Si no está, créala de nuevo con python -m venv venv desde la carpeta de tu proyecto.

La segunda: estás escribiendo la ruta mal. En Windows la ruta lleva \ (barra invertida) y en macOS/Linux lleva /. Un source venv\bin\activate en Linux, o al revés, falla por la barra.

macOS / Linux: “permission denied” o no aparece el (venv)

Si en macOS o Linux el source venv/bin/activate no hace nada visible, verifica primero que usaste source (o su equivalente .) al inicio. Ejecutar venv/bin/activate sin source no activa el entorno en tu terminal actual — corre en una subshell que se cierra al instante. La palabra source es obligatoria.

Si da “permission denied”, el script perdió el permiso de ejecución. Recréalo con python3 -m venv venv, o dale permiso con chmod +x venv/bin/activate.

Cómo confirmar que quedó activado

Cuando el entorno está activo, verás su nombre entre paréntesis al inicio de la línea:

(venv) C:\Users\tu\proyecto>

Si ves ese (venv), funcionó. Otra comprobación: pip --version o which python (macOS/Linux) / where python (Windows) deberían apuntar a una ruta dentro de tu carpeta venv, no al Python global.

Resumen

  • PowerShell bloquea el script → Set-ExecutionPolicy -Scope CurrentUser RemoteSigned, o usa CMD.
  • “activate no se reconoce” → carpeta equivocada, o entorno no creado; revisa que exista venv.
  • macOS/Linux sin efecto → faltó source antes del comando.
  • Comando incorrecto → cada sistema tiene su ruta; no copies la de otro SO.

Una vez que activas el entorno bien, todo lo demás con Python fluye. Y si el error que te trajo aquí fue en realidad el de externally-managed-environment al instalar paquetes, el entorno virtual es justamente la solución a ese también.


¿Tu caso no encaja en estos, o el entorno se desactiva solo al cambiar de terminal? Escríbeme desde contacto y lo revisamos.

← Más de Resolver