#!/usr/bin/env python3 """ Запуск Streamlit интерфейса локально из изолированного пакета """ import subprocess import sys import webbrowser import os def main(): """Основная функция""" print("🚀 ЗАПУСК STREAMLIT ИЗ ИЗОЛИРОВАННОГО ПАКЕТА") print("=" * 60) print("Убедитесь, что FastAPI сервер запущен на порту 8000") print("=" * 60) # Проверяем, существует ли папка streamlit_app if not os.path.exists("streamlit_app"): print("❌ Папка streamlit_app не найдена") print("Создайте изолированный пакет или используйте docker-compose up -d") return # Переходим в папку streamlit_app os.chdir("streamlit_app") # Проверяем, установлен ли Streamlit try: import streamlit print(f"✅ Streamlit {streamlit.__version__} установлен") except ImportError: print("❌ Streamlit не установлен") print("Установите: pip install -r requirements.txt") return print("\n🚀 Запускаю Streamlit...") print("📍 URL: http://localhost:8501") print("🔗 API: http://localhost:8000") print("🛑 Для остановки нажмите Ctrl+C") # Открываем браузер try: webbrowser.open("http://localhost:8501") print("✅ Браузер открыт") except Exception as e: print(f"⚠️ Не удалось открыть браузер: {e}") # Запускаем Streamlit с правильными переменными окружения env = os.environ.copy() env["DOCKER_ENV"] = "false" # Локальный запуск env["API_BASE_URL"] = "http://localhost:8000" # Локальный API try: subprocess.run([ sys.executable, "-m", "streamlit", "run", "app.py", "--server.port", "8501", "--server.address", "localhost", "--server.headless", "false", "--browser.gatherUsageStats", "false" ], env=env) except KeyboardInterrupt: print("\n👋 Streamlit остановлен") if __name__ == "__main__": main()