fix: 全面修复 TUI 和跨平台兼容性
- constants.py: requests/openai/numpy 改为 try/except 保护 - tui.py: asyncio.get_event_loop() → get_running_loop() (Python 3.10+) - tui.py: _remove_thinking 增加异常保护 - tui.py: XiaoliTUI 占位类增加 __init__ 和 run 方法 - tui.py: bare except 改为 except Exception - sandbox.py: resource 模块 try/except 保护 (Windows 兼容)
This commit is contained in:
1 parent
d819502b00
commit
623d53f06f
2 files changed
+52
-24
No files matched your search
+32
-14
@@ -11,13 +11,43 @@ import sys
|
||||
import importlib.util
|
||||
import json
|
||||
import re
|
||||
import requests
|
||||
import shutil
|
||||
import time
|
||||
import threading
|
||||
from concurrent.futures import ThreadPoolExecutor, as_completed
|
||||
from openai import OpenAI
|
||||
from colorama import init, Fore, Style
|
||||
from http.server import HTTPServer, BaseHTTPRequestHandler
|
||||
from urllib.parse import urlparse, parse_qs
|
||||
import socket
|
||||
import webbrowser
|
||||
from datetime import datetime
|
||||
import logging
|
||||
import asyncio
|
||||
from typing import Optional
|
||||
from io import StringIO
|
||||
|
||||
# ── 第三方依赖(全部 try/except 保护) ──
|
||||
|
||||
try:
|
||||
import requests
|
||||
REQUESTS_AVAILABLE = True
|
||||
except ImportError:
|
||||
requests = None
|
||||
REQUESTS_AVAILABLE = False
|
||||
|
||||
try:
|
||||
from openai import OpenAI
|
||||
OPENAI_AVAILABLE = True
|
||||
except ImportError:
|
||||
OpenAI = None
|
||||
OPENAI_AVAILABLE = False
|
||||
|
||||
try:
|
||||
import numpy as np
|
||||
NUMPY_AVAILABLE = True
|
||||
except ImportError:
|
||||
np = None
|
||||
NUMPY_AVAILABLE = False
|
||||
|
||||
# tkinter 仅在视频播放功能中使用,服务器环境可能不可用
|
||||
try:
|
||||
@@ -34,14 +64,6 @@ try:
|
||||
except ImportError:
|
||||
CV2_AVAILABLE = False
|
||||
|
||||
import numpy as np
|
||||
from http.server import HTTPServer, BaseHTTPRequestHandler
|
||||
from urllib.parse import urlparse, parse_qs
|
||||
import socket
|
||||
import webbrowser
|
||||
from datetime import datetime
|
||||
import logging
|
||||
|
||||
# 图像显示相关(可选)
|
||||
try:
|
||||
from PIL import Image
|
||||
@@ -77,10 +99,6 @@ except ImportError:
|
||||
UNIFIED_TOOL_MANAGER_AVAILABLE = False
|
||||
|
||||
# Textual TUI 支持
|
||||
import asyncio
|
||||
from typing import Optional
|
||||
from io import StringIO
|
||||
|
||||
try:
|
||||
from textual.app import App, ComposeResult
|
||||
from textual.containers import Container, Horizontal, Vertical, VerticalScroll
|
||||
|
||||
Reference in new issue
Block a user