python库 clickhouse-driver 使用过程报错:clickhouse-cityhash is required to use compression

问题描述

python库 clickhouse-driver 使用过程报错:clickhouse-cityhash is required to use compression

原因分析

底层库(比如 clickhouse-driver),它在启用压缩通信时仍然会尝试加载 clickhouse-cityhash 库来做内部 hash 校验

clickhouse-cityhash 是一个 Python 包(绑定库),提供 CityHash 哈希函数的实现,用于 ClickHouse 客户端或驱动在启用压缩/散列相关功能时计算哈希值或校验。错误提示的意思是你的程序需要这个包来支持压缩功能,但当前环境中没有安装它

启用压缩,请先 python3 -m pip install clickhouse-cityhash

CityHash 是 Google 提供的一组高性能非加密哈希函数,适用于短/长字符串快速哈希计算。

clickhouse-cityhash 是一个 Python 包(绑定库),提供 CityHash 哈希函数的实现,用于 ClickHouse 客户端或驱动在启用压缩/散列相关功能时计算哈希值或校验。

pip 安装 clickhouse-cityhash 报错

  • 使用的是 Python 3.13
  • 出现了多个类似如下的错误:
error: no member named 'curexc_type' in '_ts'
error: no member named 'ob_digit' in '_longobject'
error: no matching function for call to '_PyLong_AsByteArray'

这些错误主要是由于该包的 C/C++ 扩展代码与当前使用的 Python 3.13+ 不兼容导致的

💡 解决方法:降级到 Python <= 3.12

亲测可用!

更多推荐