(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 版本的兼容性,避免额外报错。
相关推荐
belldeep13 分钟前
python:genesis-world, Genesis-Embodied-AI
人工智能·python·ai·genesis
布莱克60515 分钟前
C/C++ 中变量的声明与定义:区别、联系与常见误区
c语言·开发语言·c++·声明·定义
LabVIEW开发24 分钟前
LabVIEW 局部变量为何引发竞争条件?四种同步机制
开发语言·labview
benchmark_cc1 小时前
A 股、港股、美股如何建立统一的标的主数据格式?
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
维克兜率天2 小时前
【维克】趋势型CTA:期货市场的“追涨杀跌“
人工智能·python
Zenova EdgeOS2 小时前
Go 工业边缘错误处理实战:用 errors 构建可追溯错误链
开发语言·数据库·golang
取名真是2 小时前
Python 算法知识点从基础到进阶
开发语言·python·算法
梦想不只是梦与想3 小时前
PyTorch、CPU、GPU、CUDA
人工智能·pytorch·python·深度学习·机器学习·cuda
数字融合3 小时前
透明化视频孪生危化安全管控解决方案
人工智能·python·安全
FRing033 小时前
vue2干货总结3(computed计算属性、watch监听器)
开发语言·前端·vue.js·vue2