Ninja is required to load C++ extensions
cl.exe添加到系统环境变量:
Ninja is required to load C++ extensions
import sys import os # === 强制设置 Ninja 路径 === conda_env_path = os.path.dirname(sys.executable) # 获取当前 conda 环境路径 ninja_dir = os.path.join(conda_env_path, "Scripts") # 确保 Ninja 路径在 PATH 的最前面 if os.path.exists(os.path.join(ninja_dir, "ninja.exe")): os.environ["PATH"] = ninja_dir + os.pathsep + os.environ.get("PATH", "") print(f"✅ 已添加 Ninja 路径: {ninja_dir}") else: print(f"⚠️ 未找到 ninja.exe,请检查: {ninja_dir}") # 设置 PyTorch 扩展缓存目录(避免权限问题) os.environ["TORCH_EXTENSIONS_DIR"] = os.path.join(os.path.expanduser("~"), "AppData", "Local", "torch_extensions") # 禁用 Ninja 自动检测(备选方案,如果仍然失败) # os.environ["TORCH_NO_NINJA"] = "1" # 取消注释可强制不使用 Ninja print(f"当前 PATH: {os.environ['PATH'][:200]}...") # 打印前200个字符验证