Python: Entorno y dependencias

Python
Python

¡Desbloquea el curso completo!

IA
Ejercicios
Certificado
Entrar

Entorno y dependencias en Python

El desarrollo profesional en Python requiere un manejo adecuado del entorno de trabajo y las dependencias del proyecto. A diferencia de otros lenguajes compilados, Python es un lenguaje interpretado que depende de un intérprete y un ecosistema de bibliotecas externas para funcionar correctamente.

Gestión del intérprete de Python

Python permite tener múltiples versiones instaladas simultáneamente en el mismo sistema. Esta característica es fundamental para el desarrollo profesional, ya que diferentes proyectos pueden requerir versiones específicas del intérprete.

El intérprete de Python es el programa que ejecuta el código Python. Cada versión del intérprete puede tener diferencias en sintaxis, funcionalidades y rendimiento. Por ejemplo, las mejoras en el manejo de tipos introducidas en versiones recientes no están disponibles en versiones anteriores.

# Verificar la versión de Python en uso
import sys
print(f"Versión de Python: {sys.version}")
print(f"Información del sistema: {sys.version_info}")

Entornos virtuales

Los entornos virtuales son espacios aislados que contienen una instalación específica de Python junto con sus bibliotecas. Esta herramienta resuelve uno de los problemas más comunes en el desarrollo: los conflictos de dependencias entre proyectos.

Cuando trabajas en múltiples proyectos, es probable que cada uno requiera versiones diferentes de las mismas bibliotecas. Sin entornos virtuales, todas las bibliotecas se instalan globalmente, lo que puede generar incompatibilidades.

Creación de un entorno virtual:

# Crear un entorno virtual
python -m venv mi_proyecto_env

# Activar el entorno (Linux/macOS)
source mi_proyecto_env/bin/activate

# Activar el entorno (Windows)
mi_proyecto_env\Scripts\activate

Una vez activado el entorno virtual, cualquier instalación de paquetes se realizará únicamente dentro de ese espacio aislado, sin afectar la instalación global de Python ni otros proyectos.

Gestión de dependencias con pip

Guarda tu progreso

Inicia sesión para no perder tu progreso y accede a miles de tutoriales, ejercicios prácticos y nuestro asistente de IA.

Progreso guardado
Asistente IA
Ejercicios
Iniciar sesión gratis

Más de 25.000 desarrolladores ya confían en CertiDevs

pip es el gestor de paquetes estándar de Python. Permite instalar, actualizar y desinstalar bibliotecas desde el Python Package Index (PyPI), el repositorio oficial de paquetes de Python.

La gestión adecuada de dependencias implica no solo instalar los paquetes necesarios, sino también documentar exactamente qué versiones se utilizan. Esto garantiza que el proyecto sea reproducible en diferentes entornos.

Instalación y gestión básica:

# Instalar un paquete específico
pip install requests

# Instalar una versión específica
pip install django==4.2.0

# Actualizar un paquete
pip install --upgrade numpy

# Listar paquetes instalados
pip list

Archivo requirements.txt

El archivo requirements.txt es la forma estándar de documentar las dependencias de un proyecto Python. Este archivo contiene una lista de todos los paquetes necesarios junto con sus versiones específicas.

# requirements.txt
requests==2.31.0
django>=4.2.0,<5.0.0
numpy==1.24.3
pandas>=2.0.0
pytest==7.4.0

Trabajar con requirements.txt:

# Generar requirements.txt desde el entorno actual
pip freeze > requirements.txt

# Instalar dependencias desde requirements.txt
pip install -r requirements.txt

Gestión avanzada con pipenv

pipenv combina pip y virtualenv en una herramienta más moderna que simplifica la gestión de entornos y dependencias. Utiliza archivos Pipfile y Pipfile.lock para un control más preciso de las dependencias.

# Instalar pipenv
pip install pipenv

# Crear entorno e instalar dependencias
pipenv install requests django

# Activar el entorno
pipenv shell

# Instalar dependencias de desarrollo
pipenv install pytest --dev

El archivo Pipfile reemplaza a requirements.txt con una sintaxis más clara:

[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]
requests = "*"
django = ">=4.2.0"

[dev-packages]
pytest = "*"
black = "*"

[requires]
python_version = "3.13"

Variables de entorno

Las variables de entorno permiten configurar aplicaciones sin modificar el código fuente. Son especialmente importantes para manejar información sensible como claves de API, credenciales de base de datos o configuraciones específicas del entorno.

import os
from pathlib import Path

# Leer variables de entorno
api_key = os.getenv('API_KEY')
debug_mode = os.getenv('DEBUG', 'False').lower() == 'true'

# Usar archivos .env para desarrollo local
# Requiere python-dotenv: pip install python-dotenv
from dotenv import load_dotenv

load_dotenv()
database_url = os.getenv('DATABASE_URL')

Ejemplo de archivo .env:

DEBUG=True
SECRET_KEY=mi-clave-secreta-de-desarrollo
DATABASE_URL=postgresql://usuario:password@localhost/mi_db
API_KEY=abc123def456

Estructura de proyecto recomendada

Una estructura de proyecto bien organizada facilita el mantenimiento y la colaboración. La organización del código y los archivos de configuración debe seguir convenciones establecidas.

mi_proyecto/
├── src/
│   └── mi_proyecto/
│       ├── __init__.py
│       ├── main.py
│       └── utils.py
├── tests/
│   ├── __init__.py
│   └── test_main.py
├── requirements.txt
├── .env.example
├── .gitignore
├── README.md
└── setup.py

Esta estructura separa el código fuente, las pruebas y los archivos de configuración, facilitando el desarrollo y despliegue del proyecto.

Completa Python y certifícate

Únete a nuestra plataforma y accede a miles de tutoriales, ejercicios prácticos, proyectos reales y nuestro asistente de IA personalizado para acelerar tu aprendizaje.

Asistente IA

Resuelve dudas al instante

Ejercicios

Practica con proyectos reales

Certificados

Valida tus conocimientos

Más de 25.000 desarrolladores ya se han certificado con CertiDevs

⭐⭐⭐⭐⭐
4.9/5 valoración