Instalar múltiples Pythons y qué trae por defecto

¿Alguna vez has sentido que tener varias versiones de Python en tu computadora es como una pesadilla silenciosa? Es fácil caer en el drama de los conflictos cuando las instalaciones se tropiezan, pero la realidad es que puedes tenerlas todas coexistiendo sin pisarse. La clave está en un poco de orden y en dejar que tú decidas cuál versión usar en cada caso.

Comencemos desmontando ese miedo a los conflictos. En lugar de mezclar todo en el PATH, lo más efectivo es instalar cada versión en su propio directorio, como por ejemplo `C:Python39` o `C:Python310`. Al desmarcar la opción de añadir Python al PATH durante la instalación, evitas que las versiones se empujen entre sí. Aquí es donde entra la verdadera magia práctica: el launcher `py`. Desde tu consola, puedes ejecutar comandos específicos como `py -3.9` o `py -3.10`, y cada uno lanzará exactamente esa versión, sin importar cuántas más tengas instaladas.

Varias carpetas de Python instaladas y un comando py ejecutado en consola
Instalando versiones separadas para evitar conflictos en tu sistema.

Ahora bien, para trabajar en proyectos reales, lo correcto es utilizar entornos virtuales. Al ejecutar un comando como `python -m venv venv`, creas un espacio aislado que usa esa versión específica y tiene sus propias librerías, sin contaminar nada fuera del proyecto.

Moviendo la conversación a otra duda común: ¿qué librerías instala Python por defecto? Aquí es donde se aclara una confusión muy extendida. La respuesta honesta es que Python trae muy pocas «librerías» externas por defecto, limitándose casi exclusivamente a su biblioteca estándar (stdlib) y al gestor de paquetes `pip`. Nada de los gigantes del análisis de datos como `numpy`, `pandas` o `torch`; todo eso requiere una instalación adicional vía pip.

Sin embargo, no subestimes la stdlib. Es enorme y sorprendentemente completa. Python viene liviano pero con herramientas poderosas listas para usar desde el primer momento: módulos para lo básico como `sys`, `os` o `math`; para archivos como `json`, `csv` y `sqlite3`; para red como `socket` o `urllib`; e incluso para concurrencia con `threading` y `asyncio`. Si sabes usarla bien, puedes hacer muchísimo sin instalar nada extra.

El resultado es tener control total sobre tu entorno. Puedes decidir exactamente qué versiones de Python necesitas y saber claramente qué traes a casa al ejecutar un instalador. Es la diferencia entre navegar por el caos de las dependencias o construir un sistema sólido, profesional y libre de dolores de cabeza.