fix: venv改为懒加载,兼容嵌入式CPython无venv模块
This commit is contained in:
@@ -4,9 +4,16 @@
|
|||||||
import logging
|
import logging
|
||||||
import asyncio
|
import asyncio
|
||||||
import sys
|
import sys
|
||||||
|
import os as _os
|
||||||
import signal
|
import signal
|
||||||
import time
|
import time
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
|
# 确保项目根目录在 sys.path 中 (嵌入式 CPython / PyPy 需要)
|
||||||
|
_sys_path_root = _os.path.dirname(_os.path.abspath(__file__))
|
||||||
|
if _sys_path_root not in sys.path:
|
||||||
|
sys.path.insert(0, _sys_path_root)
|
||||||
|
|
||||||
from services.project_engine import ProjectEngine
|
from services.project_engine import ProjectEngine
|
||||||
from services.pyenv_manager import PyEnvManager
|
from services.pyenv_manager import PyEnvManager
|
||||||
from services.proxy_service import ProxyService
|
from services.proxy_service import ProxyService
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
"""SenSu PyEnvManager — Python 版本管理 + venv + 依赖安装"""
|
"""SenSu PyEnvManager — Python 版本管理 + venv + 依赖安装"""
|
||||||
import os, sys, subprocess, logging, venv, shutil
|
import os, sys, subprocess, logging, shutil
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Optional, List
|
from typing import Optional, List
|
||||||
|
|
||||||
@@ -76,7 +76,8 @@ class PyEnvManager:
|
|||||||
logger.info(f"创建 venv: {venv_path} (Python {python_version or 'default'})")
|
logger.info(f"创建 venv: {venv_path} (Python {python_version or 'default'})")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
venv.create(str(venv_path), with_pip=True, clear=True)
|
import venv as _venv
|
||||||
|
_venv.create(str(venv_path), with_pip=True, clear=True)
|
||||||
# Install/upgrade pip
|
# Install/upgrade pip
|
||||||
pip = str(venv_path / "bin" / "pip")
|
pip = str(venv_path / "bin" / "pip")
|
||||||
subprocess.run([pip, "install", "--upgrade", "pip"], capture_output=True, timeout=60)
|
subprocess.run([pip, "install", "--upgrade", "pip"], capture_output=True, timeout=60)
|
||||||
|
|||||||
Reference in New Issue
Block a user