You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

M1 Mac运行Tensor2Tensor遇TypeError及protobuf依赖冲突求助

解决M1 MacBook上Tensor2Tensor的依赖错误问题

一、修复entry_points()参数错误

这个问题是因为你安装的importlib-metadata版本过高,和Tensor2Tensor 1.15.7不兼容,按以下步骤操作:

  1. 打开终端,激活你的miniconda环境:

    conda activate 你的环境名称
    

    若忘记环境名,输入conda env list即可查看所有环境,找到你使用的Python 3.8环境。

  2. 降级importlib-metadata到兼容版本:

    pip install importlib-metadata==3.10.0
    
  3. 强制固定protobuf版本为3.20.0,避免升级:

    pip install protobuf==3.20.0 --force-reinstall
    

二、验证修复效果

执行命令测试:

t2t-trainer --registry_help

如果仍有问题,可尝试创建全新环境,规避旧环境的依赖混乱:

三、创建全新miniconda环境(终极方案)

  1. 创建名为t2t_env的新环境,指定Python 3.8:

    conda create -n t2t_env python=3.8
    

    过程中输入y确认即可。

  2. 激活新环境:

    conda activate t2t_env
    
  3. 按顺序安装兼容版本的依赖:

    # 先安装TensorFlow相关组件
    pip install tensorflow-macos==2.10.0 tensorflow-metal==0.6.0
    # 安装指定版本的Tensor2Tensor
    pip install tensor2tensor==1.15.7
    # 安装兼容的importlib-metadata和protobuf
    pip install importlib-metadata==3.10.0 protobuf==3.20.0
    

错误原因说明

  • entry_points()参数错误:Tensor2Tensor 1.15.7基于旧版importlib-metadata的API开发,你安装的4.12.0版本修改了entry_points的参数规则,导致调用失败,降级到3.10.0即可匹配。
  • Descriptors cannot not be created directly错误:protobuf 4.x版本与你使用的TensorFlow 2.10.0、Tensor2Tensor 1.15.7不兼容,TensorFlow 2.10仅支持protobuf 3.20.x系列,升级到4.x会破坏内部描述符创建逻辑,必须保持3.20.0版本。

内容的提问来源于stack exchange,提问作者jzy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 08:11:40