ModuleNotFoundError: No module named _bz2

解決:
  ModuleNotFoundError: No module named _bz2

在服務器上安裝python3.8,安裝pandas使用時,出現這個問題。試了很多方法,總結一下問題:

yum安裝或者download bzip2-1.0.6.tar.gz from https://github.com/nemequ/bzip2/releases 這兩個選擇一個就可以,但是yum安裝沒有解決問題,所以就下載了bzip2的源碼進行編譯

yum install bzip2-devel
tar -zxvf bzip2-1.0.6.tar.gz
cd bzip2-1.0.6
make && make install

這裏要改一下名字,保證:
/usr/include裏有bzlib.h
/usr/lib64裏有libbz2.so.1.0(如果是通過yum安裝或者源碼安裝有可能名字不是這樣的,比如libbz2.so,要改一下名稱)

之後編譯python3.8

export CFLAGS="-I/usr/include"
export LDFLAGS="-L/usr/lib64"
export LD_LIBRARY_PATH=/usr/lib64

./configure --prefix=/usr/local/python3.8
make

另外採用直接拷貝_bz2.cpython-38-x86_64-linux-gnu.so並不能解決問題,需要本地編譯生成
https://stackoverflow.com/questions/12806122/missing-python-bz2-module

總結一下:
保證
/usr/include/bzlib.h
/usr/lib64/libbz2.so.1.0存在
然後編譯python3.8時指明路徑

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章