pip install hanlp 报错 UnicodeDecodeError

详细报错内容:

(fnProject) PS C:\Users\asus> pip install hanlp
Collecting hanlp
  Using cached hanlp-2.0.0a42.tar.gz (132 kB)
Collecting tensorflow==2.1.0
  Using cached tensorflow-2.1.0-cp37-cp37m-win_amd64.whl (355.8 MB)
Collecting fasttext==0.9.1
  Using cached fasttext-0.9.1.tar.gz (57 kB)
Collecting bert-for-tf2==0.12.7
  Using cached bert-for-tf2-0.12.7.tar.gz (39 kB)
    ERROR: Command errored out with exit status 1:
     command: 'D:\CONDA\envs\fnProject\python.exe' -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\asus\\AppData\\Local\\Temp\\pip-install-vx2_ryn2\\bert-for-tf2\\setup.py'"'"'; __file__='"'"'C:\\Users\\asus\\AppData\\Local\\Temp\\pip-install-vx2_ryn2\\bert-for-tf2\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\asus\AppData\Local\Temp\pip-install-vx2_ryn2\bert-for-tf2\pip-egg-info'
         cwd: C:\Users\asus\AppData\Local\Temp\pip-install-vx2_ryn2\bert-for-tf2\
    Complete output (5 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\asus\AppData\Local\Temp\pip-install-vx2_ryn2\bert-for-tf2\setup.py", line 21, in <module>
        long_description = fh.read()
    UnicodeDecodeError: 'cp950' codec can't decode byte 0xa0 in position 8481: illegal multibyte sequence
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

System information

  • OS Platform: Windows 10 64bit
  • Python version:Python 3.7.7
  • HanLP version:

看来是UnicodeDecodeError的问题

网上解决方法为修改开档方式

但是依照路径寻找却找不到该档案

请问要如何解决,万分感谢!

你试试pip install pyhanlp。

目前能成功使用,也正在使用就是pyhanlp

但还是想试试用新版本的

感谢您的建议

这是你的Windows编码问题,建议:

  1. 修改Windows的默认编码。
  2. 从第三方库 bert-for-tf2==0.12.7 的源码安装,修改源码中的编码。
  3. 人生苦短,换用Unix

新版本也不能直接pip install hanlp吧, 可以弄个jar包自己调用

遇到了类似的问题。我是OS系统,python3.6。这个编码问题已经在bert-for-tf2的后续版本得到解决。

其实就是两行代码,见unicode issue,在v0.13.5中得到解决。

@hankcs 作者大佬是否考虑接受bert-for-tf2之后的版本(0.13.5之后)?否则,遇到类似问题的用户只能手动下载v0.12.7的源码并且做出和 unicode issue类似的改动才能安装成功。

1 个帖子被拆分到新主题:在分词的时候提升相关词的权重?

谢谢建议,选择固定版本的原因是避免第三方库变更API带来的不兼容问题。我将在测试高版本是否兼容后升级到高版本。

刚才测试正常,已经升级了。

OK, 谢谢晗博士!

➜ /usr/local/opt/python@3.7/bin/python3 -m pip install hanlp -i 
  https://mirror.baidu.com/pypi/simple
  Looking in indexes: https://mirror.baidu.com/pypi/simple
  Collecting hanlp
  Downloading 
https://mirror.baidu.com/pypi/packages/4d/f8/90aa7373c40581a1fd744e07b86993f5f753665b8c799b97a41b11924928/hanlp-2.0.0a49.tar.gz (133 kB)
   |████████████████████████████████| 133 kB 4.5 MB/s
Collecting tensorflow==2.1.0
Downloading https://mirror.baidu.com/pypi/packages/35/55/a0dbd642e68e68f3e309d1413abdc0a7aa7e1534c79c0fc2501defb864ac/tensorflow-2.1.0-cp37-cp37m-macosx_10_11_x86_64.whl (120.8 MB)
   |████████████████████████████████| 120.8 MB 2.7 MB/s
Collecting fasttext==0.9.1
Downloading https://mirror.baidu.com/pypi/packages/10/61/2e01f1397ec533756c1d893c22d9d5ed3fce3a6e4af1976e0d86bb13ea97/fasttext-0.9.1.tar.gz (57 kB)
   |████████████████████████████████| 57 kB 12.8 MB/s
Collecting bert-for-tf2==0.14.5
Downloading https://mirror.baidu.com/pypi/packages/87/df/ab6d927d6162657f30eb0ae3c534c723c28c191a9caf6ee68ec935df3d0b/bert-for-tf2-0.14.5.tar.gz (40 kB)
   |████████████████████████████████| 40 kB 15.6 MB/s
Collecting py-params==0.8.2
Downloading https://mirror.baidu.com/pypi/packages/ec/17/71c5f3c0ab511de96059358bcc5e00891a804cd4049021e5fa80540f201a/py-params-0.8.2.tar.gz (4.5 kB)
ERROR: Could not find a version that satisfies the requirement params-flow==0.9.7 (from hanlp) (from versions: 0.0.4, 0.0.6, 0.0.9, 0.0.10, 0.1.0, 0.1.1, 0.1.2, 0.1.3, 0.1.6, 0.1.8, 0.1.9, 0.2.0, 0.2.1, 0.2.2, 0.2.3, 0.2.4, 0.3.0, 0.4.0, 0.5.0, 0.5.1, 0.5.2, 0.5.3, 0.6.0, 0.6.1, 0.6.2, 0.6.3, 0.6.5, 0.6.6, 0.6.7, 0.6.8, 0.7.0, 0.7.1, 0.7.2, 0.7.3, 0.7.4, 0.8.0, 0.8.1, 0.8.2)
ERROR: No matching distribution found for params-flow==0.9.7 (from hanlp)

params-flow 最新版本是0.8.2

1 个帖子被拆分到新主题:什么时候可以兼容3.8版本 tensorflow升级到2.2.x的版本及以上

感谢反馈,已经修复。