Spaces:
Sleeping
Sleeping
| """ | |
| Point d'entrée principal de l'application d'analyse des adventices agricoles | |
| Avec détection automatique des problèmes et fallback | |
| """ | |
| import warnings | |
| import matplotlib.pyplot as plt | |
| import seaborn as sns | |
| import sys | |
| import os | |
| # Suppression des warnings | |
| warnings.filterwarnings('ignore') | |
| # Configuration des graphiques | |
| plt.style.use('default') | |
| sns.set_palette("husl") | |
| def try_gradio_interface(): | |
| """Essaie de lancer l'interface Gradio""" | |
| try: | |
| print("🔄 Tentative de lancement de l'interface Gradio...") | |
| from interface import AgricultureInterface | |
| app = AgricultureInterface() | |
| app.launch() | |
| return True | |
| except ImportError as e: | |
| print(f"❌ Erreur d'import: {e}") | |
| if "pyaudioop" in str(e) or "audioop" in str(e): | |
| print("🔍 Problème détecté: Dépendance audio manquante pour Gradio") | |
| return False | |
| except Exception as e: | |
| print(f"❌ Erreur lors du lancement de Gradio: {e}") | |
| return False | |
| def run_fallback(): | |
| """Lance le mode fallback sans Gradio""" | |
| try: | |
| print("🔄 Basculement vers le mode fallback...") | |
| from main_fallback import run_analysis_without_ui | |
| return run_analysis_without_ui() | |
| except Exception as e: | |
| print(f"❌ Erreur dans le mode fallback: {e}") | |
| return False | |
| def main(): | |
| """Fonction principale avec gestion d'erreur et fallback automatique""" | |
| print("🌾 Application d'Analyse des Adventices Agricoles") | |
| print("=" * 60) | |
| # Tentative 1: Interface Gradio complète | |
| print("\n🎯 Tentative 1: Interface web avec Gradio") | |
| try: | |
| if try_gradio_interface(): | |
| return # Succès, on s'arrête ici | |
| except KeyboardInterrupt: | |
| print("\n⏹️ Arrêt demandé par l'utilisateur") | |
| return | |
| except Exception as e: | |
| print(f"❌ Échec critique de l'interface Gradio: {e}") | |
| # Tentative 2: Mode fallback console | |
| print("\n🎯 Tentative 2: Mode console (fallback)") | |
| try: | |
| if run_fallback(): | |
| print("\n✅ Mode fallback exécuté avec succès") | |
| print("\n💡 Pour utiliser l'interface web, résolvez les problèmes de dépendances:") | |
| print(" - Installez les dépendances audio manquantes") | |
| print(" - Ou utilisez une version compatible de Gradio") | |
| else: | |
| print("\n❌ Échec du mode fallback") | |
| exit(1) | |
| except KeyboardInterrupt: | |
| print("\n⏹️ Arrêt demandé par l'utilisateur") | |
| return | |
| except Exception as e: | |
| print(f"\n❌ Erreur critique dans le mode fallback: {e}") | |
| print("🆘 Aucun mode disponible - vérifiez vos dépendances") | |
| exit(1) | |
| if __name__ == "__main__": | |
| main() | |