Python Launcher en Windows: Múltiples Versiones sin Conflictos
Tienes un monolito anclado en Python 3.8 y quieres empezar un script rápido en 3.12 sin destruir tu entorno. O peor aún, acabas de machacar tu PATH instalando una versión nueva y ya nada arranca.
Ahí es donde entra el Python Launcher (py.exe). Es una herramienta oficial de Windows que viene incluida por defecto y que, sorprendentemente, muchos ignoran. Permite ejecutar múltiples versiones sin conflictos ni configuraciones esotéricas.
Al lío.
La solución nativa: py.exe
Olvídate de buscar python.exe en tu disco. El instalador de Python en Windows incluye la opción “Install launcher for all users”. Si la dejaste marcada, la herramienta ya está en tu sistema.
Para ver qué versiones tienes instaladas y accesibles, lanza este comando en tu terminal:
py --list
La salida te mostrará algo como esto:
Installed Pythons found by py Launcher for Windows
-3.12-64 *
-3.10-64
El asterisco (*) te marca la versión por defecto. Si pasas py a secas de forma interactiva, esa es la que se ejecuta.
Instalar y eliminar versiones de Python
Para instalar una versión nueva, bájate el instalador oficial y ejecútalo. Es clave no marcar la casilla Add Python to PATH. No queremos variables de entorno colisionando.
PyLauncher escanea el registro de Windows automáticamente. En cuanto acabe la instalación, tira un py --list en consola y verás tu intérprete disponible.
¿Quieres limpiar versiones viejas? Desinstálalas desde “Agregar o quitar programas” estándar de Windows. El launcher se sincroniza al vuelo y lo saca de la lista.
Seleccionando versiones al vuelo
El launcher lee los flags en la ejecución para redirigir el entorno al intérprete correcto. Ejecutar un script con una versión específica es trivial:
py -3.10 mi_script.py
py -3.12 mi_script.py
Nada de variables de entorno manuales ni de invocar ejecutables con rutas absolutas. Todo queda auto-descubierto desde el registro de Windows.
Forzar el intérprete con Shebang
Lo más potente es que puedes “encapsular” la versión requerida directamente en el script usando un shebang clásico, al estilo Unix, incluso en Windows:
#! python3.10
print("Este proceso solo corre en Python 3.10")
Si haces py script.py, el launcher parsea la primera línea, detecta la restricción y arranca la versión 3.10 en silencio. Muy útil en scripts de utilería que compartes con el equipo.
Cómo cambiar la versión predeterminada
Por defecto, se dispara siempre la última versión que hayas instalado. Si necesitas clavar otra como estándar para el día a día, olvida el PATH.
Crea un archivo llamado py.ini a nivel de usuario (%LOCALAPPDATA%\py.ini) o globalmente en tu máquina (%PROGRAMDATA%\py.ini):
[defaults]
python=3.10
Y si solo buscas cambiarlo de forma temporal en la terminal que tienes abierta, inyecta la variable de entorno antes de ejecutar:
set PY_PYTHON=3.10
Ventajas claras
- Evitas colisiones: No necesitas tocar el
PATHpara tener tres versiones menores. - Portabilidad: Los shebangs permiten estandarizar requerimientos de ejecución desde el código.
- Nativo: Cero binarios de terceros que mantener.
Gestiónate las versiones eficientemente usando la herramienta oficial. Menos fricción, entornos más limpios.