Calc/install_tkinterweb_js.py

82 lines
3.1 KiB
Python
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
"""
Script para instalar tkinterweb con soporte JavaScript completo
"""
import subprocess
import sys
import importlib
def check_installed(package_name):
"""Verifica si un paquete está instalado"""
try:
importlib.import_module(package_name)
return True
except ImportError:
return False
def install_package(package_spec):
"""Instala un paquete usando pip"""
try:
print(f"🔄 Instalando {package_spec}...")
subprocess.check_call([sys.executable, "-m", "pip", "install", package_spec])
print(f"{package_spec} instalado correctamente")
return True
except subprocess.CalledProcessError as e:
print(f"❌ Error instalando {package_spec}: {e}")
return False
def main():
"""Función principal"""
print("🚀 Instalador de tkinterweb con JavaScript")
print("=" * 50)
# Verificar estado actual
print("\n📊 Estado actual:")
tkinterweb_available = check_installed("tkinterweb")
pythonmonkey_available = check_installed("pythonmonkey")
print(f" • tkinterweb: {'✅ Instalado' if tkinterweb_available else '❌ No instalado'}")
print(f" • pythonmonkey: {'✅ Instalado' if pythonmonkey_available else '❌ No instalado'}")
if tkinterweb_available and pythonmonkey_available:
print("\n🎉 ¡Todo está instalado correctamente!")
print(" La calculadora debería funcionar con JavaScript completo.")
return
print("\n🔧 Procediendo con la instalación...")
# Instalar tkinterweb con JavaScript
if not tkinterweb_available or not pythonmonkey_available:
print("\n1⃣ Instalando tkinterweb[javascript]...")
success = install_package("tkinterweb[javascript]")
if not success:
print("\n⚠️ La instalación automática falló.")
print(" Intenta manualmente:")
print(" pip install tkinterweb[javascript]")
print("\n Si hay problemas con PythonMonkey:")
print(" 1. Asegúrate de tener Python 3.8+")
print(" 2. En Windows, puede requerir Visual Studio Build Tools")
print(" 3. En Linux, puede requerir build-essential")
return
# Verificar instalación final
print("\n🔍 Verificando instalación...")
tkinterweb_final = check_installed("tkinterweb")
pythonmonkey_final = check_installed("pythonmonkey")
print(f" • tkinterweb: {'' if tkinterweb_final else ''}")
print(f" • pythonmonkey: {'' if pythonmonkey_final else ''}")
if tkinterweb_final and pythonmonkey_final:
print("\n🎉 ¡Instalación completada exitosamente!")
print(" La calculadora MAV ahora puede usar JavaScript completo.")
print(" Reinicia la aplicación para activar las funciones avanzadas.")
else:
print("\n⚠️ Instalación parcial.")
print(" La calculadora funcionará en modo fallback.")
print(" Consulta la documentación para resolver problemas de instalación.")
if __name__ == "__main__":
main()