Error solution for polyglot(No module named 'icu'、No module named '_bz2' )

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Lockey23/article/details/81711721

系统环境redhat7.1 python3.6

polyglot 16.7.4

pip install polyglot
import polyglot
from polyglot.text import Text, Word

ICU_VERSION = subprocess.check_output((‘icu-config’, ‘–version’)).strip()

Error 1 :No module named ‘icu’

---> 11 from icu import Locale
     12 import pycld2 as cld2

ModuleNotFoundError: No module named 'icu'

解决方法:

(py3) [root@7-o-1 ~]# pip install pyicu

Error installing pip pyicu

sudo apt install libicu-dev
#or
yum install libicu-dev

pip3 install pycld2

pip3 install morfessor

Error 2: No module named ‘_bz2’

from _bz2 import BZ2Compressor, BZ2Decompressor

ModuleNotFoundError: No module named 'morfessor'

ModuleNotFoundError: No module named '_bz2'

python2据说是这样解决的:

Centos 6

sudo cp /usr/lib64/python2.6/lib-dynload/bz2.so /python_install_path/lib/python2.7/lib-dynload
Centos 7

sudo cp /usr/lib64/python2.7/lib-dynload/bz2.so /python_install_path/lib/python2.7/lib-dynload

在我试验的系统中是这样解决的:

(py3) [root@7-o-1 ~]# cd /usr/local/lib/python3.6/lib-dynload/

wget https://github.com/LockeyCheng/packages/blob/master/_bz2.cpython-36m-x86_64-linux-gnu.so

(py3) [root@7-o-1 lib-dynload]# chmod u+x _bz2.cpython-36m-x86_64-linux-gnu.so 

据说还有另外一种版本,安装一些必须包后重新编译python,感觉有点扯,有兴趣和时间的话可以尝试:

the solution above can solve bz2 problems with python2.7. but not python 3.x yeah, you need _bz2.cpython-3xm-x86_64-linux-gnu.so, however you should build it in your own env.

here's my solution:

yum install bzip2-devel. (or apt-get)
download bzip2-1.0.6. make && make install ()
build Python3's _bz2.cpython like this:
vim run.sh under python3's source code folder:Python-3.x.x

export CFLAGS="-I/usr/include"
export LDFLAGS="-L/usr/lib64"
export LD_LIBRARY_PATH=/usr/lib64
make distclean
./configure --prefix=/home/xxx/Python3 && make && make install

猜你喜欢

转载自blog.csdn.net/Lockey23/article/details/81711721