Proyecto para conectar y consultar una base de datos PostgreSQL alojada en Supabase desde Python.
- Python 3.8 o superior instalado en tu máquina
- Git (opcional, para clonar el proyecto)
# Con Git
git clone <URL-del-repositorio>
cd test_equipo
# O descargar el ZIP y extraerUn entorno virtual aísla las dependencias del proyecto. Así no interfiere con otros proyectos.
python -m venv venv_testpython3 -m venv venv_testvenv_test\Scripts\activateDeberías ver (venv_test) al inicio de la línea de comando
source venv_test/bin/activateDeberías ver (venv_test) al inicio de la terminal
Con el entorno virtual activado, ejecuta:
pip install -r requirements.txtDependencias que se instalan:
python-dotenv- Para manejar variables de entornosqlalchemy- Para conexiones a base de datospsycopg2-binary- Driver PostgreSQLpandas- Para manejo de datos
Abre el archivo .env y completa tus credenciales de Supabase:
DB_USER=tu_usuario_supabase
DB_PASSWORD=tu_contraseña
DB_HOST=tu_host_supabase
DB_PORT=6543
DB_NAME=postgres
⚠️ Importante: No compartas este archivo con credenciales reales en público.
Con el entorno virtual aún activado, ejecuta:
python test_conexion.pyResultado esperado:
✅ Conexión exitosa
now
0 2026-05-18 14:30:45.123456
Si ves el mensaje ❌ Error de conexión, revisa:
- Las credenciales en el archivo
.env - La conexión a internet
- El estado de tu base de datos Supabase
Crea un archivo consulta.py:
from conexion import engine
import pandas as pd
# Ejemplo: Consultar todos los registros
query = "SELECT * FROM tu_tabla LIMIT 10"
df = pd.read_sql(query, engine)
print(df)Ejecuta:
python consulta.pyEl archivo query.ipynb ya está disponible. Para usarlo:
jupyter notebook query.ipynbLuego escribe tus consultas SQL dentro de las celdas:
import pandas as pd
from conexion import engine
df = pd.read_sql("SELECT * FROM tu_tabla", engine)
df.head()Cuando termines de trabajar, desactiva el entorno virtual:
deactivatedeactivateEl (venv_test) desaparecerá de tu terminal
test_equipo/
├── conexion.py # Conexión a Supabase
├── test_conexion.py # Script de prueba
├── query.ipynb # Notebook para consultas
├── requirements.txt # Dependencias del proyecto
├── .env # Credenciales (NO subir a Git)
├── venv_test/ # Entorno virtual (NO subir a Git)
└── README.md # Este archivo
| Problema | Solución |
|---|---|
ModuleNotFoundError: No module named 'sqlalchemy' |
Asegúrate de activar el venv e instalar pip install -r requirements.txt |
Error: can't open file 'conexion.py' |
Verifica estar en la carpeta correcta del proyecto |
connection timeout |
Revisa la URL de Supabase y que la IP esté permitida |
authentication failed |
Comprueba usuario y contraseña en .env |
- Credenciales: Nunca guardes credenciales reales en repositorios públicos
- Entorno Virtual: Siempre actívalo antes de ejecutar scripts
- Requirements: Si instalas nuevas librerías, actualiza
requirements.txt
pip freeze > requirements.txt- ✅ Clonar proyecto
- ✅ Crear entorno virtual
- ✅ Activar entorno virtual
- ✅ Instalar dependencias (
requirements.txt) - ✅ Configurar
.env - ✅ Probar conexión (
test_conexion.py) - ✅ Hacer consultas (scripts o Jupyter)
- ✅ Desactivar entorno virtual
¡Listo para trabajar con Supabase! 🎉