82 lines
3.1 KiB
Python
82 lines
3.1 KiB
Python
#!/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() |