macOS安装protobuf==3.20.*报错及TypeError问题技术求助
macOS下protobuf安装报错及TypeError问题解决方法
一、解决zsh: no matches found: protobuf==3.20.*错误
zsh会将命令中的*解析为通配符,导致匹配失败,用以下任意一种方式执行安装命令即可:
- 给版本号加双引号:
pip install "protobuf==3.20.*" - 给版本号加单引号:
pip install 'protobuf==3.20.*' - 转义星号:
pip install protobuf==3.20.\*
二、解决TypeError: Descriptors cannot not be created directly错误
方法1:确保protobuf版本降至3.20.x及以下
执行完上述正确的安装命令后,验证当前protobuf版本:
pip show protobuf
确认版本号在3.20.x范围内即可,该版本能兼容旧的生成代码,避免类型错误。
方法2:设置协议缓冲区Python实现环境变量
如果无法降级版本,可临时设置环境变量切换到纯Python解析(性能会变慢):
export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python
若需要永久生效,编辑~/.zshrc文件,添加上述环境变量行,然后执行以下命令使配置生效:
source ~/.zshrc
内容的提问来源于stack exchange,提问作者Pratik patil
相关产品推荐
相关产品推荐

