banner
libxcnya.so

libxcnya.so

Nothing...
telegram
twitter
github
email

解決 pip 安裝 cchardet 報錯 fatal error: longintrepr.h: No such file or directory

如題,在 Python 3.11+ 中安裝 cchardet 會報錯如下

root@nya:/pgp# pip3 install cchardet
收集 cchardet
  使用快取的 cchardet-2.1.7.tar.gz (653 kB)
  準備元資料 (setup.py) ... 完成
為收集的套件建立輪子: cchardet
 cchardet 建立輪子 (setup.py) ... 錯誤
  錯誤: 子進程退出時出錯
  
  × python setup.py bdist_wheel 未成功運行。
 退出代碼: 1
  ╰─> [23 行的輸出]
      正在運行 bdist_wheel
      正在運行 build
      正在運行 build_py
      創建 build
      創建 build/lib.linux-x86_64-cpython-311
      創建 build/lib.linux-x86_64-cpython-311/cchardet
      複製 src/cchardet/version.py -> build/lib.linux-x86_64-cpython-311/cchardet
      複製 src/cchardet/__init__.py -> build/lib.linux-x86_64-cpython-311/cchardet
      正在運行 build_ext
      建立 'cchardet._cchardet' 擴展
      創建 build/temp.linux-x86_64-cpython-311
      創建 build/temp.linux-x86_64-cpython-311/src
      創建 build/temp.linux-x86_64-cpython-311/src/cchardet
      創建 build/temp.linux-x86_64-cpython-311/src/ext
      創建 build/temp.linux-x86_64-cpython-311/src/ext/uchardet
      創建 build/temp.linux-x86_64-cpython-311/src/ext/uchardet/src
      創建 build/temp.linux-x86_64-cpython-311/src/ext/uchardet/src/LangModels
      x86_64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -Isrc/ext/uchardet/src -I/usr/include/python3.11 -c src/cchardet/_cchardet.cpp -o build/temp.linux-x86_64-cpython-311/src/cchardet/_cchardet.o
      src/cchardet/_cchardet.cpp:196:12: 致命錯誤: longintrepr.h: 沒有這個檔案或目錄
        196 |   #include "longintrepr.h"
            |            ^~~~~~~~~~~~~~~
      編譯終止。
      錯誤: 命令 '/usr/bin/x86_64-linux-gnu-gcc' 以退出代碼 1 失敗
      [輸出結束]
  
  注意: 此錯誤源於子進程,並且可能不是 pip 的問題。
  錯誤: 無法為 cchardet 建立輪子
  正在為 cchardet 運行 setup.py clean
無法建立 cchardet
安裝收集的套件: cchardet
  正在為 cchardet 運行 setup.py install ... 錯誤
  錯誤: 子進程退出時出錯
  
  × cchardet 運行 setup.py install 未成功運行。
 退出代碼: 1
  ╰─> [25 行的輸出]
      正在運行 install
      /usr/lib/python3/dist-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install 已被棄用。請使用 build pip 及其他基於標準的工具。
        warnings.warn(
      正在運行 build
      正在運行 build_py
      創建 build
      創建 build/lib.linux-x86_64-cpython-311
      創建 build/lib.linux-x86_64-cpython-311/cchardet
      複製 src/cchardet/version.py -> build/lib.linux-x86_64-cpython-311/cchardet
      複製 src/cchardet/__init__.py -> build/lib.linux-x86_64-cpython-311/cchardet
      正在運行 build_ext
      建立 'cchardet._cchardet' 擴展
      創建 build/temp.linux-x86_64-cpython-311
      創建 build/temp.linux-x86_64-cpython-311/src
      創建 build/temp.linux-x86_64-cpython-311/src/cchardet
      創建 build/temp.linux-x86_64-cpython-311/src/ext
      創建 build/temp.linux-x86_64-cpython-311/src/ext/uchardet
      創建 build/temp.linux-x86_64-cpython-311/src/ext/uchardet/src
      創建 build/temp.linux-x86_64-cpython-311/src/ext/uchardet/src/LangModels
      x86_64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -Isrc/ext/uchardet/src -I/usr/include/python3.11 -c src/cchardet/_cchardet.cpp -o build/temp.linux-x86_64-cpython-311/src/cchardet/_cchardet.o
      src/cchardet/_cchardet.cpp:196:12: 致命錯誤: longintrepr.h: 沒有這個檔案或目錄
        196 |   #include "longintrepr.h"
            |            ^~~~~~~~~~~~~~~
      編譯終止。
      錯誤: 命令 '/usr/bin/x86_64-linux-gnu-gcc' 以退出代碼 1 失敗
      [輸出結束]
  
  注意: 此錯誤源於子進程,並且可能不是 pip 的問題。
錯誤: 遺留安裝失敗

× 嘗試安裝套件時遇到錯誤。
╰─> cchardet

注意: 這是上述提到的套件的問題,而不是 pip。
提示: 請參見上面的失敗輸出。
root@nya:/pgp#  

然而 cchardet 作者好像已經跑路很久了,等作者修應該是不可能了
所以只需要

pip3 install cython

即可解決問題

root@nya:/pgp# pip install cython
收集 cython
  下載 Cython-3.0.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.6/3.6 MB 30.4 MB/s eta 0:00:00
安裝收集的套件: cython
成功安裝 cython-3.0.10
警告: 'root' 用戶身份運行 pip 可能會導致權限損壞和與系統套件管理器的衝突行為。建議使用虛擬環境: https://pip.pypa.io/warnings/venv
root@nya:/pgp# pip3 install cchardet
收集 cchardet
  使用快取的 cchardet-2.1.7.tar.gz (653 kB)
  準備元資料 (setup.py) ... 完成
為收集的套件建立輪子: cchardet
 cchardet 建立輪子 (setup.py) ... 完成
 cchardet 創建輪子: filename=cchardet-2.1.7-cp311-cp311-linux_x86_64.whl size=293924 sha256=f1047bca199fd5cd9b4009133aacd9b2d6738723e1a8f106fc17e9efa000f0cb
  存儲在目錄: /root/.cache/pip/wheels/5e/37/0f/444b73ed86b6045e2c3cc9122401f064158f035f099a0a9e64
成功建立 cchardet
安裝收集的套件: cchardet
成功安裝 cchardet-2.1.7
警告: 'root' 用戶身份運行 pip 可能會導致權限損壞和與系統套件管理器的衝突行為。建議使用虛擬環境: https://pip.pypa.io/warnings/venv
root@nya:/pgp#

如果文章對你有用,還請點個讚,謝謝喵

此文由 Mix Space 同步更新至 xLog
原始鏈接為 https://blog.nekorua.com/posts/maintain/126.html


載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。