MCPcopy Create free account
hub / github.com/TheSmallHanCat/flow2api / _ensure_browser_installed

Function _ensure_browser_installed

src/services/browser_captcha.py:157–201  ·  view source on GitHub ↗

确保 chromium 浏览器已安装

()

Source from the content-addressed store, hash-verified

155
156
157def _ensure_browser_installed() -> bool:
158 """确保 chromium 浏览器已安装"""
159 try:
160 detect_script = (
161 "from playwright.sync_api import sync_playwright\n"
162 "with sync_playwright() as p:\n"
163 " print(p.chromium.executable_path or '')\n"
164 )
165 env = os.environ.copy()
166 env.setdefault("PLAYWRIGHT_BROWSERS_PATH", os.environ.get("PLAYWRIGHT_BROWSERS_PATH", "0") or "0")
167 result = subprocess.run(
168 [sys.executable, "-c", detect_script],
169 capture_output=True,
170 text=True,
171 timeout=60,
172 env=env,
173 )
174 browser_path = (result.stdout or "").strip().splitlines()
175 browser_path = browser_path[-1].strip() if browser_path else ""
176 if result.returncode == 0 and browser_path and os.path.exists(browser_path):
177 debug_logger.log_info(f"[BrowserCaptcha] chromium 浏览器已安装: {browser_path}")
178 finish_runtime_prepare("browser", "检测到 chromium 浏览器已安装,正在准备实例...")
179 return True
180 except Exception as e:
181 debug_logger.log_info(f"[BrowserCaptcha] 检测浏览器时出错: {e}")
182
183 debug_logger.log_info("[BrowserCaptcha] chromium 浏览器未安装,开始自动安装...")
184 progress_runtime_prepare("browser", "[BrowserCaptcha] chromium 浏览器未安装,开始自动安装...")
185 print("[BrowserCaptcha] chromium 浏览器未安装,开始自动安装...")
186
187 # 先尝试官方源
188 if _run_playwright_install(use_mirror=False):
189 return True
190
191 # 官方源失败,尝试国内镜像
192 debug_logger.log_info("[BrowserCaptcha] 官方源安装失败,尝试国内镜像...")
193 progress_runtime_prepare("browser", "[BrowserCaptcha] 官方源安装失败,尝试国内镜像...")
194 print("[BrowserCaptcha] 官方源安装失败,尝试国内镜像...")
195 if _run_playwright_install(use_mirror=True):
196 return True
197
198 debug_logger.log_error("[BrowserCaptcha] ❌ chromium 浏览器自动安装失败,请手动安装: python -m playwright install chromium")
199 fail_runtime_prepare("browser", "[BrowserCaptcha] ❌ chromium 浏览器自动安装失败,请手动安装: python -m playwright install chromium")
200 print("[BrowserCaptcha] ❌ chromium 浏览器自动安装失败,请手动安装: python -m playwright install chromium")
201 return False
202
203
204# 尝试导入 playwright

Callers 1

browser_captcha.pyFile · 0.85

Calls 6

finish_runtime_prepareFunction · 0.85
progress_runtime_prepareFunction · 0.85
_run_playwright_installFunction · 0.85
fail_runtime_prepareFunction · 0.85
log_infoMethod · 0.80
log_errorMethod · 0.80

Tested by

no test coverage detected