Centos bz2報(bào)錯(cuò)

報(bào)錯(cuò)情景

在基于centos的鏡像的容器中.python程序import pandas會(huì)import bz2,報(bào)錯(cuò)信息:

  File "/usr/local/python3/lib/python3.6/site-packages/pandas/io/common.py", line 3, in <module>
    import bz2
  File "/usr/local/python3/lib/python3.6/bz2.py", line 23, in <module>
    from _bz2 import BZ2Compressor, BZ2Decompressor
ModuleNotFoundError: No module named '_bz2'

解決辦法:

安裝zlib跟bz2相關(guān)庫(kù)(但是我記得我裝過(guò)了), 缺了哪些選擇安裝

RUN yum -y install zlib bzip2 zlib-devel bzip2-devel libffi-devel openssl openssl-devel ncurses-devel sqlite sqlite-devel readline-devel tk-devel gcc make wget mesa-libGL.x86_64 lzma ncurses xz xz-devel gdbm gdbm-devel tk tk-devel

重新編譯

RUN cd /usr/local/python3/Python-3.6.9 && make distclean && ./configure --prefix=/usr/local/python3 --enable-optimizations  && make && make install

其中/usr/include里有bzlib.h,/usr/lib64里有l(wèi)ibbz2.so

最后在/usr/local/python3/lib/python3.6/lib-dynload/得到一個(gè)_bz2.cpython-36m-x86_64-linux-gnu.so

然后import pandas會(huì)有警告

>>> import pandas
/usr/local/python3/lib/python3.6/site-packages/pandas/compat/__init__.py:120: UserWarning: Could not import the lzma module. Your installed Python is incomplete. Attempting to use lzma compression will result in a RuntimeError.
  warnings.warn(msg)

安裝

yum install -y xz-devel python-backports-lzma
pip install backports.lzma

進(jìn)入/usr/local/python3/lib/python3.6/lzma.py

line27行修改如何下:

try:
    from _lzma import *
    from _lzma import _encode_filter_properties, _decode_filter_properties
except ImportError:
    from backports.lzma import *
    from backports.lzma import _encode_filter_properties, _decode_filter_properties
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容