Update main.py

修复Asyncio Windows兼容性
This commit is contained in:
🐟Jaryán🍋
2026-05-20 22:54:27 +08:00
committed by GitHub
parent 9311d21f1f
commit 5ddd969a8e

View File

@@ -85,17 +85,29 @@ async def check_environment():
"""Check if MediaCrawler environment is configured correctly""" """Check if MediaCrawler environment is configured correctly"""
try: try:
# Run uv run main.py --help command to check environment # Run uv run main.py --help command to check environment
process = await asyncio.create_subprocess_exec( if sys.platform == "win32":
"uv", "run", "main.py", "--help", loop = asyncio.get_running_loop()
stdout=subprocess.PIPE, process = await loop.run_in_executor(
stderr=subprocess.PIPE, None,
cwd="." # Project root directory lambda: subprocess.run(
) ["uv", "run", "main.py", "--help"],
stdout, stderr = await asyncio.wait_for( capture_output=True,
process.communicate(), timeout=30.0,
timeout=30.0 # 30 seconds timeout cwd="."
) )
)
stdout, stderr = process.stdout, process.stderr # bytes
else:
process = await asyncio.create_subprocess_exec(
"uv", "run", "main.py", "--help",
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
cwd="." # Project root directory
)
stdout, stderr = await asyncio.wait_for(
process.communicate(),
timeout=30.0 # 30 seconds timeout
)
if process.returncode == 0: if process.returncode == 0:
return { return {
"success": True, "success": True,
@@ -125,7 +137,7 @@ async def check_environment():
return { return {
"success": False, "success": False,
"message": "Environment check error", "message": "Environment check error",
"error": str(e) "error": f"{type(e).__name__}: {str(e) or 'Unknown'}"
} }