python3.7安装pyltp出错_pyltp安装填坑指南及whl文件制作

对我来说,算是个坑。还好,百度搜索到了这个问题。

LTP及pyltp

LTP提供了一系列中文自然语言处理工具,用户可以使用这些工具对于中文文本进行分词、词性标注、句法分析等等工作。

pyltp 是 LTP 的 Python 封装,提供了分词,词性标注,命名实体识别,依存句法分析,语义角色标注的功能。

源码安装

源码安装或whl打包,都有一个尴尬的地方,也就是python 3.7及以上之后,不受官方原始包支持,得改代码。

pyltp的安装,不推荐通过pip install pyltp==0.2.1这种方式安装。这样的安装方式,报错了也不能解决。所以我们需要从pypi下载源码,然后通过修改源码的方式安装(python 3.6不用更改源码,可以直接pip install安装)。

1, 从pypi下载源码

2, 解压软件包,然后进入目录安装

pip install setup.py

3, 如果Python版本为3.7及以上,可能会报如下错误:

patch/libs/python/src/converter/builtin_converters.cpp:51:64:

error:

invalid conversion from ‘const void*’ to ‘void*’ [-fpermissive]

return PyUnicode_Check(obj) ? _PyUnicode_AsString(obj) : 0;

error: command 'gcc' failed with exit status 1

这种出错,是c++和c的差别,c允许包括const void* 转换为void指针类型,但c++不让,所以就gcc报错了。

找到报错文件patch/libs/python/src/converter/builtin_converters.cpp,把51行加一个(void)类型转换。

截屏2020-07-13上午10.13.25.png

Whl打包及安装

为了不重复修改源码,方便之后的安装,根据源码生成一个whl文件是很有意义的。生成whl文件步骤如下:

1,同样下载及解压pyltp。

2,运行如下命令检查文件的完整性。

python setup.py check

3,运行如下命令会在dist目录下生成whl文件(如果提示报错,则按前面提到的方式修改源码,重新运行)。

python setup.py sdist bdist_wheel || true

参考URL:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值