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

Ubuntu18.04运行sawtooth keygen命令出现TypeError错误如何解决?

错误根因

该报错由 protobuf 版本不兼容导致:你安装的 Sawtooth 1.2.6 版本对应的 protobuf 代码是基于 3.6.x 及更低版本的 protobuf 生成的,而你本地环境的 protobuf 版本高于 3.7,3.7 及以上版本移除了旧版的 serialized_options 参数支持,导致旧生成代码调用时报错。

可用解决方法

  • 方案一:降级本地 protobuf 到兼容版本
    执行以下命令安装匹配的 3.6.1 版本 protobuf:
pip3 install protobuf==3.6.1

如果提示全局安装权限不足,可使用用户目录安装:

pip3 install --user protobuf==3.6.1

安装完成后重新执行 sawtooth keygen my_key 即可正常运行。

  • 方案二:避免修改本地依赖,使用官方镜像执行命令
    如果不想改动本地已安装的 protobuf 版本,可直接使用 Sawtooth 官方提供的对应版本 CLI 镜像执行操作,无需配置本地运行环境。
  • 方案三:重新生成 protobuf 代码
    若必须保留高版本 protobuf,可进入 /usr/lib/python3/dist-packages/sawtooth_cli/protobuf/ 目录,使用当前本地安装的 protoc 编译器重新编译所有 .proto 文件,替换旧的自动生成的 _pb2.py 文件即可适配高版本 protobuf。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 17:06:03