(Mac)torch==2.1.2 与 Python 3.12 不兼容+onnxruntime-silicon 不支持 Intel Mac



🔍 错误原因

  1. 虽然你现在用的是 Python 3.11,但 onnxruntime-silicon 这个包只支持 Apple Silicon(arm64)Mac,不支持 Intel(x86_64)
  2. 加上 uv 会检查所有 Python 版本的兼容性,哪怕你当前用的是 3.11,它也会因为"不兼容其他版本"而报错
  3. 同时,你的 requires-python 没有写死范围,导致 uv 默认允许更高版本的 Python,进一步放大了问题

✅ 最终版可直接复制的 pyproject.toml

这个配置完全适配你的 Intel Mac + Python 3.11,并且解决了所有依赖冲突:

toml 复制代码
[project]
name = "ai-test-agent-system"
version = "0.1.0"
description = "Add your description here"
# 强制锁定 Python 版本,避免 uv 检查其他版本导致报错
requires-python = "==3.11.*"
dependencies = [
    "langchain>=1.2.12",
    "langchain-deepseek>=1.0.1",
    "langchain-mcp-adapters>=0.2.1",
    "langgraph-cli[inmem]>=0.4.15",
    "pillow>=12.1.1",
    "langchain-community>=0.3.0",
    "langchain-openai>=0.3.0",
    # 把 pymupdf4llm 降级到不强制高版本 onnxruntime 的版本
    "pymupdf4llm<0.0.20",
    # 用官方最后支持 Intel Mac 的 onnxruntime 版本
    "onnxruntime==1.16.3",
    # 用官方最后支持 Intel Mac 的 torch 版本
    "torch==2.1.2",
    "torchvision==0.16.2",
    "torchaudio==2.1.2"
]

[tool.uv]
# 强制 uv 只考虑你的 Intel Mac + Python 3.11 环境
required-environments = [
  "python_version == '3.11' and sys_platform == 'darwin' and platform_machine == 'x86_64'"
]

🛠️ 执行步骤(按顺序来)

python 复制代码
 uv venv
 source .venv/bin/activate
 1025  pyenv install 3.11.11
 1026  pyenv local 3.11.11
 1027  source ~/.zshrc
 1028  python --version
 1029  uv sync

💡 关键说明

  • 为什么不用 onnxruntime-silicon 它的名字里的 silicon 就是指 Apple Silicon 芯片,Intel Mac 用不了,所以直接用官方最后一个支持 Intel 的 onnxruntime==1.16.3 更稳。
  • 为什么降级 pymupdf4llm 新版本的 pymupdf4llm 会强制依赖高版本 onnxruntime,降级到 <0.0.20 就能兼容 1.16.3
  • 为什么写死 requires-python = "==3.11.*" 这样 uv 就不会再去检查 3.12/3.13 版本的兼容性,避免额外报错。
相关推荐
Sylvia33.1 分钟前
篮球数据API的技术架构与工程实践:基于火星数据WebSocket实时推送体系
java·python·websocket·网络协议·架构
nnerddboy18 分钟前
Rust教程05:结构体,枚举与模式匹配
开发语言·网络·rust
小小尚@21 分钟前
AE脚本-AE Actions v1.1.8 操作动作记录器
开发语言·前端·javascript·jupyter·postman
DogDaoDao30 分钟前
【第10篇】Python 异常处理与调试入门
python·深度学习·ai·程序员·大模型·异常处理与调试
程序员雷欧43 分钟前
Java 反射深度解析:从原理到源码的全面剖析
java·开发语言·python
登登登__1 小时前
春秋招笔试题总结
java·开发语言
做萤石二次开发的哈哈1 小时前
开发者如何调用 ERTC iOS API 完成 SDK 初始化配置?
macos·objective-c·cocoa
我的xiaodoujiao1 小时前
快速学习Python基础知识详细图文教程18--多线程
开发语言·python·学习·测试工具
想要入门的程序猿1 小时前
Qt插件QPluginLoader
开发语言·qt
Rabitebla2 小时前
C++11 新特性详解(一):列表初始化、initializer_list 与右值引用
java·开发语言·数据结构·c++·算法·leetcode·list