mirror of
https://github.com/NanmiCoder/MediaCrawler.git
synced 2026-05-30 22:47:28 +08:00
Update main.py
修复Asyncio Windows兼容性
This commit is contained in:
36
api/main.py
36
api/main.py
@@ -85,17 +85,29 @@ async def check_environment():
|
||||
"""Check if MediaCrawler environment is configured correctly"""
|
||||
try:
|
||||
# Run uv run main.py --help command to check environment
|
||||
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 sys.platform == "win32":
|
||||
loop = asyncio.get_running_loop()
|
||||
process = await loop.run_in_executor(
|
||||
None,
|
||||
lambda: subprocess.run(
|
||||
["uv", "run", "main.py", "--help"],
|
||||
capture_output=True,
|
||||
timeout=30.0,
|
||||
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:
|
||||
return {
|
||||
"success": True,
|
||||
@@ -125,7 +137,7 @@ async def check_environment():
|
||||
return {
|
||||
"success": False,
|
||||
"message": "Environment check error",
|
||||
"error": str(e)
|
||||
"error": f"{type(e).__name__}: {str(e) or 'Unknown'}"
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user