Ubuntu下Python3.11安装python-snappy==0.6.1报错:snappy-c.h不存在
解决Ubuntu下Python3.11安装python-snappy==0.6.1的编译错误
错误原因
编译失败的核心原因有两个:
- 缺少系统级的snappy压缩库开发文件(
snappy-c.h),这是python-snappy编译时必须的依赖 - python-snappy 0.6.1版本发布于2019年,不支持Python3.11的新API和编译环境
解决方案
1. 先安装系统依赖库
在Ubuntu终端执行以下命令,安装snappy的开发包:
sudo apt update && sudo apt install -y libsnappy-dev
2. 选择适配Python3.11的安装方案
方案A:升级python-snappy到兼容版本(推荐)
放弃0.6.1,安装最新的兼容Python3.11的版本:
pip install python-snappy>=0.7.0
注:0.7.0及以上版本已经修复了Python3.10+的兼容性问题
方案B:强制安装0.6.1并打补丁(不推荐,仅当必须使用旧版本时)
如果业务必须依赖0.6.1版本,需要手动修改源码适配Python3.11:
- 先下载0.6.1的源码包:
pip download python-snappy==0.6.1 --no-deps - 解压源码包,修改
src/snappy/snappymodule.cc文件,适配Python3.11的API变化(比如调整PyUnicode相关调用逻辑) - 然后本地编译安装:
pip install ./python-snappy-0.6.1/
内容的提问来源于stack exchange,提问作者Priya Rani
相关产品推荐
相关产品推荐

