Curso de Python / Crear entornos virtuales y gestionar paquetes con pip

Un entorno virtual separa los paquetes instalados de un proyecto de los de otros proyectos. Ejecutar pip como python -m pip deja explícito qué intérprete recibe la instalación y ayuda a evitar conflictos entre Python distintos.

Entender qué aísla un entorno virtual

Dos proyectos pueden necesitar versiones distintas de una misma biblioteca. Si ambos utilizan una instalación compartida, actualizar un paquete para uno puede afectar al otro. Un entorno .venv por proyecto permite gestionar esas dependencias por separado.

Ese aislamiento se refiere a los paquetes: no impide acceder a archivos ni cambia los permisos del usuario. Un programa ejecutado dentro del entorno conserva tus privilegios sobre el sistema. La documentación de venv detalla su relación con la instalación base de Python.

Elemento Función
Python Ejecutar el programa
venv Crear un entorno para el proyecto
pip Instalar, consultar y desinstalar paquetes externos
requirements.txt Registrar paquetes y versiones para una instalación posterior

Crear y activar el entorno

Si ya existe .venv, comprueba qué contiene antes de recrearlo. Para un proyecto nuevo, abre su carpeta en la terminal y utiliza el intérprete elegido:

python -m venv .venv

En PowerShell de Windows, la activación se realiza con:

.\.venv\Scripts\Activate.ps1

En macOS o Ubuntu, utiliza:

source .venv/bin/activate

La activación modifica cómo la terminal actual encuentra la orden python. No instala otra versión del lenguaje. Si PowerShell bloquea el script, respeta la política de tu organización o llama a .venv\Scripts\python.exe directamente; no es necesario relajar la política de ejecución de todo el equipo para utilizar el entorno.

En el editor también debe seleccionarse el mismo intérprete. La configuración de Python en VS Code muestra cómo comprobar que editor y terminal coinciden.

Instalar un paquete y registrar dependencias

El ejemplo instala pandas para trabajar con tablas. Comprueba el nombre del paquete y su distribución oficial, e instala únicamente lo que necesita el proyecto. El nombre que recibe una distribución al instalarse y el que se utiliza en import no siempre son iguales.

python -m pip install pandas
python -m pip show pandas
python -m pip freeze > requirements.txt
python -m pip install -r requirements.txt

pip show informa sobre la instalación. pip freeze registra los paquetes del entorno actual, incluidos los que llegaron como dependencias. Ese archivo no garantiza una instalación idéntica en todos los sistemas ni sustituye la verificación mediante hashes.

La redirección de texto puede utilizar codificaciones diferentes según la versión de PowerShell. Si pip no puede leer requirements.txt, comprueba su codificación en lugar de asumir que todos los paquetes son incompatibles. Puedes consultar las rutas del entorno activo con:

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

Diagnosticar instalaciones y reconstruir el entorno

Antes de reinstalar un paquete, identifica el intérprete que ejecuta el programa y comprueba sus dependencias:

python -c "import sys; print(sys.executable)"
python -m pip --version
python -m pip check

Ante ModuleNotFoundError, instala el paquete en ese mismo entorno. Una instalación global como administrador no corrige que el programa utilice otro Python. Los errores de certificados o proxy requieren revisar la red y la configuración de confianza; no desactives la comprobación TLS para ocultarlos.

Sal del entorno con deactivate. Para quitar un paquete utiliza python -m pip uninstall nombre-del-paquete. Antes de borrar y reconstruir .venv, confirma que el código, los datos y el registro de dependencias están fuera de ella. Recrear el entorno no debe convertirse en borrar los archivos del proyecto.