Initial commit: SYNC_API project
This commit is contained in:
108
sync_api/verify_installation.py
Normal file
108
sync_api/verify_installation.py
Normal file
@@ -0,0 +1,108 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Script de verificación e instalación para la API de Monitoreo
|
||||
"""
|
||||
import sys
|
||||
import subprocess
|
||||
import importlib
|
||||
import os
|
||||
|
||||
def check_python_version():
|
||||
"""Verificar versión de Python"""
|
||||
version = sys.version_info
|
||||
if version.major < 3 or (version.major == 3 and version.minor < 8):
|
||||
print("❌ Error: Se requiere Python 3.8 o superior")
|
||||
return False
|
||||
print(f"✅ Python {version.major}.{version.minor}.{version.micro} detectado")
|
||||
return True
|
||||
|
||||
def check_package(package_name):
|
||||
"""Verificar si un paquete está instalado"""
|
||||
try:
|
||||
importlib.import_module(package_name)
|
||||
print(f"✅ {package_name} instalado correctamente")
|
||||
return True
|
||||
except ImportError:
|
||||
print(f"❌ {package_name} no encontrado")
|
||||
return False
|
||||
|
||||
def install_requirements():
|
||||
"""Instalar dependencias desde requirements.txt"""
|
||||
try:
|
||||
subprocess.check_call([sys.executable, "-m", "pip", "install", "-r", "requirements.txt"])
|
||||
print("✅ Dependencias instaladas correctamente")
|
||||
return True
|
||||
except subprocess.CalledProcessError:
|
||||
print("❌ Error instalando dependencias")
|
||||
return False
|
||||
|
||||
def check_env_file():
|
||||
"""Verificar archivo .env"""
|
||||
if os.path.exists('.env'):
|
||||
print("✅ Archivo .env encontrado")
|
||||
with open('.env', 'r') as f:
|
||||
content = f.read()
|
||||
if 'DATABASE_SERVER=' in content and 'DATABASE_NAME=' in content:
|
||||
print("✅ Variables de entorno básicas configuradas")
|
||||
return True
|
||||
else:
|
||||
print("⚠️ Archivo .env existe pero faltan variables importantes")
|
||||
return False
|
||||
else:
|
||||
print("❌ Archivo .env no encontrado")
|
||||
return False
|
||||
|
||||
def main():
|
||||
"""Función principal de verificación"""
|
||||
print("🔍 Verificando instalación de API de Monitoreo de Sincronización...")
|
||||
print("=" * 60)
|
||||
|
||||
all_ok = True
|
||||
|
||||
# Verificar Python
|
||||
if not check_python_version():
|
||||
all_ok = False
|
||||
|
||||
# Verificar paquetes principales
|
||||
packages = ['fastapi', 'uvicorn', 'pydantic', 'pyodbc']
|
||||
for package in packages:
|
||||
if not check_package(package):
|
||||
print(f"Intentando instalar {package}...")
|
||||
try:
|
||||
subprocess.check_call([sys.executable, "-m", "pip", "install", package])
|
||||
if check_package(package):
|
||||
print(f"✅ {package} instalado exitosamente")
|
||||
else:
|
||||
all_ok = False
|
||||
except:
|
||||
all_ok = False
|
||||
|
||||
# Verificar archivo .env
|
||||
if not check_env_file():
|
||||
print("ℹ️ Asegúrate de configurar las variables de base de datos en .env")
|
||||
|
||||
print("=" * 60)
|
||||
|
||||
if all_ok:
|
||||
print("🎉 ¡Verificación completada exitosamente!")
|
||||
print("\n🚀 Para iniciar la API ejecuta:")
|
||||
print(" python -m uvicorn main:app --host 127.0.0.1 --port 8000 --reload")
|
||||
print("\n📖 Documentación disponible en:")
|
||||
print(" http://127.0.0.1:8000/docs")
|
||||
|
||||
# Intentar importar la configuración
|
||||
try:
|
||||
from config.settings import settings
|
||||
print(f"\n⚙️ Configuración cargada para BD: {settings.database_name}")
|
||||
except Exception as e:
|
||||
print(f"\n⚠️ Error cargando configuración: {e}")
|
||||
|
||||
else:
|
||||
print("❌ Se encontraron problemas. Revisa los errores anteriores.")
|
||||
|
||||
return all_ok
|
||||
|
||||
if __name__ == "__main__":
|
||||
success = main()
|
||||
if not success:
|
||||
sys.exit(1)
|
||||
Reference in New Issue
Block a user