Showing
1 changed file
with
20 additions
and
16 deletions
| @@ -230,23 +230,27 @@ class MindSpider: | @@ -230,23 +230,27 @@ class MindSpider: | ||
| 230 | return True | 230 | return True |
| 231 | 231 | ||
| 232 | logger.info("正在安装MediaCrawler依赖...") | 232 | logger.info("正在安装MediaCrawler依赖...") |
| 233 | + install_commands = [ | ||
| 234 | + [sys.executable, "-m", "pip", "install", "-r", str(mediacrawler_req), "-q"], | ||
| 235 | + ["uv", "pip", "install", "-r", str(mediacrawler_req), "-q"], | ||
| 236 | + ] | ||
| 233 | try: | 237 | try: |
| 234 | - result = subprocess.run( | ||
| 235 | - [sys.executable, "-m", "pip", "install", "-r", str(mediacrawler_req), "-q"], | ||
| 236 | - capture_output=True, | ||
| 237 | - text=True, | ||
| 238 | - timeout=300 # 5分钟超时 | ||
| 239 | - ) | ||
| 240 | - | ||
| 241 | - if result.returncode == 0: | ||
| 242 | - # 创建标记文件 | ||
| 243 | - marker_file.touch() | ||
| 244 | - logger.info("MediaCrawler依赖安装成功") | ||
| 245 | - return True | ||
| 246 | - else: | ||
| 247 | - logger.error(f"MediaCrawler依赖安装失败: {result.stderr}") | ||
| 248 | - return False | ||
| 249 | - | 238 | + for cmd in install_commands: |
| 239 | + result = subprocess.run( | ||
| 240 | + cmd, | ||
| 241 | + capture_output=True, | ||
| 242 | + text=True, | ||
| 243 | + timeout=300 # 5分钟超时 | ||
| 244 | + ) | ||
| 245 | + if result.returncode == 0: | ||
| 246 | + marker_file.touch() | ||
| 247 | + logger.info(f"MediaCrawler依赖安装成功 (via {cmd[0]})") | ||
| 248 | + return True | ||
| 249 | + logger.debug(f"{cmd[0]} 安装失败,尝试下一种方式: {result.stderr.strip()}") | ||
| 250 | + | ||
| 251 | + logger.error("MediaCrawler依赖安装失败:所有安装方式均不可用") | ||
| 252 | + return False | ||
| 253 | + | ||
| 250 | except subprocess.TimeoutExpired: | 254 | except subprocess.TimeoutExpired: |
| 251 | logger.error("MediaCrawler依赖安装超时") | 255 | logger.error("MediaCrawler依赖安装超时") |
| 252 | return False | 256 | return False |
-
Please register or login to post a comment