NLP-Python相关Error #polyglot#pyicu#pycld2#pyenchant

NLP-Python3 相关 Error 总结,(因为标题有字数限制,但为了检索方便就有了如上标题。)

背景:最近在学习基于Python3.6(Anaconda)的NLP,在词干提取过程中需要用到的Python包有 pyicu, pycld2, polyglot, pyenchant, pyaspeller 等,我尝试了三种操作系统:Windows10, Mac OS Mojave, CentOS7。在三种OS中使用这个这些包时都遇到了不同的Error,经过先苦后甜地研究后总结如下:

以OS分类:(Ubuntu没尝试,但已赠Solution。)

  1. CentOS7,

Symptom: pip install pyicu 出现gcc error:

gcc: error trying to exec ‘cc1plus’: execvp: No such file or directory

error: command ‘gcc’ failed with exit status 1

Solution: yum install gcc-c++

等待完成后再安装pyicu即可。

2. Mac OS Mojave,

Symptom: pip install pyicu 出现 …[Errno2]No such file or directory.

Solution: Try install pyicu using brew:

brew install icu4c

if it says that it’s already installed and just need to be linked, then try this:

brew link icu4c

# 附赠 Ubuntu 14.04 and 16.04,

Symptom: pip install pyicu 出现 …[Errno2]No such file or directory.

Solution: $sudo apt install libicu-dev

$pip install pyicu

3. Windows 10/Server2016, (最耗时的Troubleshooting…)

1Symptom: pip install pyicu 出现 error:

RuntimeError:

Please set the ICU_VERSION environment variable to the version of

ICU you have installed.

pip install pycld2 出现 error:

error: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ Build Tools”: http://landinghub.visualstudio.com/visual-cpp-build-tools

1Solution: 去 https://www.lfd.uci.edu/~gohlke/pythonlibs/ 下载Unofficial Windows Binaries for Python Extension Packages.

注意选择对应自己Python和OS版本的包名。如 pyICU‑2.1‑cp36‑cp36m‑winamd64.whl 文件名中cp36表示Python3.6, win_amd64表示Windows-64bit。

下载完成后在cmd中执行 pip install <.whl的绝对路径>,

如 pip install C:\PythonDownloadPackages\pyICU‑2.1‑cp36‑cp36m‑winamd64.whl

对pycld2‑0.31‑cp36‑cp36m‑win_amd64.whl同理。

2Symptom: 执行

from polyglot.downloader import downloader

print(downloader.supported_languages_table(task=’ner2′)) 出现error:

language = subdir.split(path.sep)[1]

IndexError: list index out of range

# 这是仅存在于Windows系统下polyglot的bug。。。

2Solution: 找到polyglot包所在文件夹中的downloader.py,例如我的是

C:\ProgramData\Anaconda3\Lib\site-packages\polyglot\downloader.py

打开后把 def fromcsobj(csobj) 函数中的 path.sep 都改为 ‘/’ ,共有4个修改完成并保存即可。如果用的是Jupyter就重新用cmd打开jupyter notebook。

参考资料:https://rel.site/questions/16_94.php,其中有github上修改好的downloader.py文件,只要下载下来替换原包中的downloader.py文件即可。

3Symptom: pip install pyenchant 出现 ImportError: The ‘enchant’ C library was not found. Please install it via your OS package manager, or use a pre-built binary wheel from PyPI.

3Solution: Bug in Windows-64bit. A workaround is using pyaspeller.

重要结论:如果遇到 pip install 安装问题,可以先尝试去其他网站下载 .whl 或 .tar.gz 包再安装,可能是pip源问题。

注:如果下载的是 .tar.gz文件,在Windows中解压后可以找到setup.py文件,在cmd中cd到setup.py所在文件夹(也可以在此文件夹下的FileExplorer地址栏输入%comspec%),再执行python setup.py install即可。

以上内容希望对 Python+NLP 学习者有所帮助,少走弯路。如有误导,欢迎各位大神留言更正,非常感谢!

    原文作者:Happywill
    原文地址: https://zhuanlan.zhihu.com/p/46032559
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞