-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstart_app.py
More file actions
116 lines (94 loc) · 3.54 KB
/
start_app.py
File metadata and controls
116 lines (94 loc) · 3.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#!/usr/bin/env python3
"""
Script de démarrage pour PythonTaMère
Résout les problèmes de PYTHONPATH et démarre l'application
"""
import sys
import os
import subprocess
import time
import webbrowser
from pathlib import Path
def main():
# S'assurer qu'on est dans le bon répertoire
script_dir = Path(__file__).parent.absolute()
os.chdir(script_dir)
print("PythonTaMere - Demarrage de l'application")
print("=" * 50)
# Ajouter le répertoire courant au PYTHONPATH
if str(script_dir) not in sys.path:
sys.path.insert(0, str(script_dir))
print(f"Repertoire de travail: {script_dir}")
print(f"Python path: {sys.path[0]}")
# Vérifier que les fichiers existent
backend_file = script_dir / "backend" / "main.py"
frontend_dir = script_dir / "frontend"
if not backend_file.exists():
print(f"ERREUR: {backend_file} introuvable")
return 1
if not frontend_dir.exists():
print(f"ERREUR: {frontend_dir} introuvable")
return 1
print("Fichiers trouves")
try:
print("\nDemarrage du Backend API...")
print(" Backend: http://localhost:8000")
print(" Docs API: http://localhost:8000/docs")
# Démarrer le backend
backend_cmd = [sys.executable, str(backend_file)]
backend_process = subprocess.Popen(
backend_cmd,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
text=True
)
# Attendre que le backend démarre
time.sleep(3)
# Vérifier si le backend fonctionne
try:
import requests
response = requests.get("http://localhost:8000/health", timeout=5)
if response.status_code == 200:
print("Backend demarre avec succes!")
else:
print("Backend demarre mais reponse inattendue")
except ImportError:
print("Module requests non disponible, impossible de verifier le backend")
except Exception as e:
print(f"Impossible de verifier le backend: {e}")
print("\nDemarrage du Frontend...")
print(" Frontend: http://localhost:3000")
# Démarrer le frontend
frontend_cmd = [
sys.executable, "-m", "http.server", "3000",
"--directory", str(frontend_dir)
]
frontend_process = subprocess.Popen(frontend_cmd)
# Attendre un peu
time.sleep(2)
print("\nApplication demarree avec succes!")
print("\nAcces a l'application:")
print(" Frontend: http://localhost:3000")
print(" Backend API: http://localhost:8000")
print(" Docs API: http://localhost:8000/docs")
print("\nPour arreter l'application, appuyez sur Ctrl+C")
# Ouvrir le navigateur
try:
webbrowser.open("http://localhost:3000")
print("Navigateur ouvert automatiquement")
except Exception as e:
print(f"Impossible d'ouvrir le navigateur: {e}")
# Attendre que l'utilisateur arrête
try:
backend_process.wait()
except KeyboardInterrupt:
print("\nArret de l'application...")
backend_process.terminate()
frontend_process.terminate()
print("Application arretee")
return 0
except Exception as e:
print(f"Erreur lors du demarrage: {e}")
return 1
if __name__ == "__main__":
sys.exit(main())