安装Twint时遇cchardet编译错误:无法构建wheel求助
解决Twint安装时cchardet编译失败的问题
错误根源
核心问题是旧版cchardet不兼容Python 3.12:Python 3.10及后续版本移除了longintrepr.h头文件,但编译cchardet扩展时仍在引用该文件,导致gcc编译中断。
解决办法
方法1:降级Python版本
将Python版本降到3.9或3.10,这两个版本仍保留longintrepr.h,可正常兼容旧版cchardet。
方法2:用纯Python版chardet替代cchardet
不想降级Python的话,可替换依赖:
- 先手动安装纯Python实现的chardet:
pip install chardet - 克隆Twint源码,修改依赖后本地安装:
git clone https://github.com/twintproject/twint.git cd twint sed -i 's/cchardet/chardet/' requirements.txt pip install .
方法3:使用维护中的Twint Fork版本
原Twint项目已停止维护,社区fork版本修复了依赖兼容问题,直接安装支持Python 3.12的分支:
pip install git+https://github.com/haccer/twint.git
完整错误信息(翻译后)
error: subprocess-exited-with-error × python setup.py bdist_wheel 运行失败。 │ 退出码: 1 ╰─> [23行输出] running bdist_wheel running build running build_py 创建 build 创建 build/lib.linux-aarch64-cpython-312 创建 build/lib.linux-aarch64-cpython-312/cchardet 复制 src/cchardet/__init__.py -> build/lib.linux-aarch64-cpython-312/cchardet 复制 src/cchardet/version.py -> build/lib.linux-aarch64-cpython-312/cchardet running build_ext 编译 'cchardet._cchardet' 扩展 创建 build/temp.linux-aarch64-cpython-312 创建 build/temp.linux-aarch64-cpython-312/src 创建 build/temp.linux-aarch64-cpython-312/src/cchardet 创建 build/temp.linux-aarch64-cpython-312/src/ext 创建 build/temp.linux-aarch64-cpython-312/src/ext/uchardet 创建 build/temp.linux-aarch64-cpython-312/src/ext/uchardet/src 创建 build/temp.linux-aarch64-cpython-312/src/ext/uchardet/src/LangModels aarch64-linux-gnu-gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall -fPIC -Isrc/ext/uchardet/src -I/usr/include/python3.12 -c src/cchardet/_cchardet.cpp -o build/temp.linux-aarch64-cpython-312/src/cchardet/_cchardet.o src/cchardet/_cchardet.cpp:196:12: 致命错误:longintrepr.h:没有那个文件或目录 196 | #include "longintrepr.h" | ^~~~~~~~~~~~~~~ 编译终止。 error: 命令 '/usr/bin/aarch64-linux-gnu-gcc' 退出码为1 [输出结束] note: 该错误源自子进程,大概率与pip无关。 ERROR: Failed building wheel for cchardet Running setup.py clean for cchardet Failed to build cchardet ERROR: Could not build wheels for cchardet, which is required to install pyproject.toml-based projects
内容的提问来源于stack exchange,提问作者gamekid the lifeboat builder
相关产品推荐
相关产品推荐

