Guía Completa: Configuración de Entorno Flask
Una referencia completa para configurar un entorno Flask con entorno virtual e instalar todas las librerías necesarias
Introducción
Esta guía te ayudará a recordar todos los pasos necesarios para configurar un entorno Flask con un entorno virtual, incluyendo la instalación de todas las librerías comunes utilizadas en proyectos de geovisores y aplicaciones web.
📋 Prerrequisitos
- Python instalado (preferiblemente Python 3.8 o superior)
- Acceso a terminal o línea de comandos
- Editor de código (VS Code, PyCharm, etc.)
🚀 Pasos para Configurar el Entorno
1 Crear y Activar un Entorno Virtual
# Navegar a la carpeta de tu proyecto
cd ruta/a/tu/proyecto
# Crear el entorno virtual
python -m venv venv_flask
# Activar el entorno virtual (Windows)
venv_flask\Scripts\activate
# Activar el entorno virtual (Linux/Mac)
source venv_flask/bin/activate
2 Instalar Flask y Librerías Esenciales
# Instalar Flask
pip install flask
# Instalar dependencias para base de datos PostgreSQL
pip install psycopg2-binary
# Instalar dependencias para generación de PDFs
pip install fpdf reportlab
# Instalar dependencias para solicitudes HTTP
pip install requests
# Instalar dependencias para análisis de datos (opcional)
pip install pandas numpy matplotlib
# Instalar dependencias para procesamiento geospatial (opcional)
pip install geopandas
3 Verificar las Instalaciones
# Verificar todas las dependencias instaladas
pip list
# Verificar instalación específica de Flask
python -c "import flask; print('Flask instalado correctamente')"
# Verificar otras dependencias importantes
python -c "import psycopg2; import fpdf; import requests; import reportlab; print('Todas las dependencias instaladas correctamente')"
4 Crear un Archivo requirements.txt
# Generar archivo con todas las dependencias
pip freeze > requirements.txt
5 Estructura de Carpetas Recomendada
tu_proyecto/
│
├── venv_flask/ # Entorno virtual (no versionar)
├── app.py # Aplicación principal Flask
├── requirements.txt # Lista de dependencias
├── static/ # Archivos estáticos (CSS, JS, imágenes)
│ └── css/
│ └── style.css
├── templates/ # Plantillas HTML
│ └── index.html
└── reportes/ # Carpeta para archivos generados
6 Código Básico de app.py
from flask import Flask, render_template, send_file, jsonify
import psycopg2
from fpdf import FPDF
import requests
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, Image
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.lib import colors
from reportlab.lib.pagesizes import A4
import os
app = Flask(__name__)
# Configuración de la base de datos PostgreSQL
DB_CONFIG = {
"dbname": "tu_base_de_datos",
"user": "tu_usuario",
"password": "tu_contraseña",
"host": "localhost",
"port": "5432",
"options": "-c client_encoding=UTF8"
}
@app.route('/')
def index():
return render_template('index.html')
# Aquí agregar más rutas y funciones según necesidad
if __name__ == '__main__':
app.run(debug=True)
7 Ejecutar la Aplicación
# Con el entorno virtual activado
python app.py
8 Comandos Útiles para Gestión del Entorno
# Desactivar el entorno virtual
deactivate
# Reactivar el entorno virtual
venv_flask\Scripts\activate # Windows
source venv_flask/bin/activate # Linux/Mac
# Actualizar pip
python -m pip install --upgrade pip
# Instalar desde requirements.txt
pip install -r requirements.txt
# Ver información del entorno
python --version
pip --version
9 Eliminar el Entorno Virtual (Cuando Sea Necesario)
# Desactivar primero el entorno si está activo
deactivate
# Eliminar la carpeta del entorno virtual
rmdir /s venv_flask # Windows
rm -rf venv_flask # Linux/Mac
🔧 Solución de Problemas Comunes
Error: "ModuleNotFoundError"
# Si falta algún módulo, instalarlo individualmente
pip install nombre_del_modulo
Error: Puerto en uso
# Cambiar el puerto en app.py
if __name__ == '__main__':
app.run(debug=True, port=5001) # Usar otro puerto
Error: Permisos en Linux/Mac
# Dar permisos de ejecución al entorno virtual
chmod +x venv_flask/bin/activate
📝 Consejos Adicionales
- Versionamiento: Mantén un archivo
requirements.txtactualizado - Documentación: Comenta tu código para recordar su funcionamiento
- Backups: Mantén copias de seguridad de tu código
- Entornos separados: Usa entornos virtuales diferentes para cada proyecto
- Pruebas: Verifica regularmente que todas las dependencias funcionan correctamente
📚 Recursos Adicionales
- Documentación oficial de Flask: https://flask.palletsprojects.com/
- Documentación de psycopg2: https://www.psycopg.org/docs/
- Documentación de FPDF: https://pyfpdf.readthedocs.io/
- Documentación de ReportLab: https://www.reportlab.com/docs/reportlab-userguide.pdf