Crear y activar entornos virtuales de Python es algo que hacemos constantemente, pero siempre escribiendo los mismos comandos. En este post te muestro cómo crear dos aliases para reducir todo a un solo comando, explicando cada paso del proceso.
El problema
Cada vez que creas un proyecto en Python, tienes que hacer esto:
python3 -m venv .venv
source .venv/bin/activate
deactivate
Son 3 comandos cada vez. Si trabajas con varios proyectos al día, se acumulan.
La solución
Crear dos aliases en tu shell:
| Comando | Qué hace |
|---|---|
mkvenv | Crea .venv y lo activa (2 en 1) |
act | Activa .venv existente |
Paso 1 — Entender qué es un alias
Un alias es un atajo de teclado para la terminal. Defines una palabra corta que sustituye un comando largo.
# Sin alias
python3 -m venv .venv && source .venv/bin/activate
# Con alias
mkvenv
¿Dónde se guardan los aliases? En un archivo de configuración de tu shell. Cada vez que abres una terminal, tu shell lee ese archivo y carga los aliases.
Paso 2 — Saber qué shell usas
Depende de qué shell uses, el archivo es diferente:
echo $SHELL
| Resultado | Shell | Archivo de configuración |
|---|---|---|
/bin/bash | Bash | ~/.bashrc |
/bin/zsh | Zsh | ~/.zshrc |
En Ubuntu, por defecto es bash. Si no sabes, usa ~/.bashrc.
Paso 3 — Abrir el archivo de configuración
nano ~/.bashrc
Esto abre el archivo en nano. Verás muchas líneas de configuración. No te preocupes por lo que hay — solo tienes que ir al final.
Paso 4 — Añadir la función mkvenv
Ve al final del archivo y añade esto:
# ============================================
# Aliases de Python
# ============================================
# Crea y activa un entorno virtual llamado .venv
mkvenv() {
python3 -m venv .venv
source .venv/bin/activate
}
¿Por qué es una función y no un alias?
| Tipo | Cuándo usarlo |
|---|---|
| Alias | Cuando ejecutas un solo comando |
| Función | Cuando ejecutas varios comandos en secuencia |
mkvenv necesita ejecutar dos comandos: crear el entorno Y activarlo. Por eso es una función.
Paso 5 — Añadir el alias act
Justo debajo de la función anterior, añade:
# Activa el entorno virtual .venv del directorio actual
alias act='source .venv/bin/activate'
¿Por qué un alias y no una función?
Porque solo necesitamos ejecutar un solo comando (source).
Paso 6 — Guardar el archivo
En nano:
- Pulsa Ctrl+O → Te pregunta “File Name to Write”. Pulsa Enter
- Pulsa Ctrl+X → Salir
No cierres la terminal. Aún no se han aplicado los cambios.
Paso 7 — Aplicar los cambios
source ~/.bashrc
¿Qué hace source?
Relee el archivo de configuración y aplica los cambios en la terminal actual.
¿Qué pasa si no ejecuto source?
Tendrías que cerrar y abrir la terminal de nuevo. Los cambios se aplican automáticamente al abrir una terminal nueva.
Paso 8 — Verificar que funciona
Comprobar que el alias está cargado
# Ver si mkvenv existe
type mkvenv
# Salida esperada: mkvenv is a function
# Ver si act existe
type act
# Salida esperada: act is aliased to 'source .venv/bin/activate'
Probarlo en la práctica
# 1. Crear una carpeta de prueba
mkdir ~/test_venv
cd ~/test_venv
# 2. Crear y activar el entorno
mkvenv
# Deberías ver: (.venv) usuario@ubuntu:~/test_venv$
# 3. Verificar que Python funciona dentro del entorno
python --version
# Debería funcionar sin errores
# 4. Desactivar
deactivate
# 5. Activar de nuevo
act
# Deberías ver: (.venv) usuario@ubuntu:~/test_venv$
# 6. Limpiar (opcional)
cd ~
rm -rf ~/test_venv
Paso 9 — Entender por qué funciona siempre
El archivo ~/.bashrc se carga automáticamente cada vez que:
- Abres una terminal nueva
- Abres una pestaña nueva en tu terminal
- Ejecutas
bashosource ~/.bashrc
No necesitas hacer nada más. Una vez que guardas los aliases en ~/.bashrc, están disponibles siempre.
Resumen
| Comando | Qué hace | Tipo | Dónde está |
|---|---|---|---|
mkvenv | Crea .venv y lo activa | Función | ~/.bashrc |
act | Activa .venv existente | Alias | ~/.bashrc |
Archivos importantes
~/.bashrc→ Configuración de bash (donde guardas los aliases).venv/→ El entorno virtual creado (en cada proyecto)
Comandos útiles
source ~/.bashrc # Aplicar cambios sin cerrar terminal
type mkvenv # Verificar si es función
type act # Verificar si es alias
alias # Ver todos los aliases definidos
Troubleshooting
| Problema | Causa | Solución |
|---|---|---|
mkvenv: command not found | No guardaste el alias o no hiciste source | Ejecutar source ~/.bashrc |
bash: .venv/bin/activate: No such file | El entorno no existe en esa carpeta | Ejecutar mkvenv primero |
function not found | Guardaste en el archivo equivocado | Verificar que editaste ~/.bashrc |
No funciona al cerrar terminal | No guardaste el archivo | Repetir pasos 6-7 |
Tips adicionales
Ver todos tus aliases
alias
# Lista todos los aliases definidos
Eliminar un alias temporalmente
unalias act # Para aliases
unfunction mkvenv # Para funciones
Añadir color al prompt cuando el venv está activado
# Añadir esto en ~/.bashrc después de los aliases:
if [[ -n "$VIRTUAL_ENV" ]]; then
PS1="\[\e[32m\](.venv)\[\e[0m\] $PS1"
fi
Crear un alias para ver qué entornos tienes
# Añadir en ~/.bashrc:
alias venvs='find . -name "pyvenv.cfg" -exec dirname {} \;'
# Uso: venvs
# Lista todos los directorios .venv del directorio actual