一把心酸泪,报的错误没有搜到解决方法,报错如下代码如下:
building 'pyltp' extension
gcc -pthread -B /home/wf/Program_file/anconda3/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3
-Wall -Wstrict-prototypes -fPIC -Iltp/include/ -Iltp/thirdparty/boost/include/ -Iltp/thirdparty/dynet/ -Iltp/thirdpa
rty/eigen/ -Iltp/thirdparty/maxent/ -Iltp/src/ -Iltp/src/splitsnt -Iltp/src/segmentor/ -Iltp/src/postagger/ -Iltp/src
/ner/ -Iltp/src/parser.n/ -Iltp/src/srl/ -Iltp/src/srl/common/ -Iltp/src/srl/include/ -Iltp/src/srl/Pi/ -Iltp/src/srl
/Srl/ -Iltp/src/srl/tool/ -Iltp/src/utils/ -Ipatch/include/ -I/home/wf/Program_file/anconda3/include/python3.6m -c sr
c/pyltp.cpp -o build/temp.linux-x86_64-3.6/src/pyltp.o -std=c++0x
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ [enabled by default]
src/pyltp.cpp:17:27: fatal error: SplitSentence.h: No such file or directory
#include "SplitSentence.h"
^
compilation terminated.
error: command 'gcc' failed with exit status 1
下面是具体怎么做的。
我是要在linux服务器上面安装pyltb,服务器的python环境是python3.6.5 ,包管理是Anconda3.
由于Linux系统上没有安装git,我也懒得安,先在windows上本地下载的github项目解压,然后传到linux服务器上面进行安装的。
第一步 在github下载相应源代码文件
-
下载pytlp源代码,下载地址pytlp源代码,解压后的文件目录结构如下,其中的ltp文件夹是空的。
-
去github下在ltp的源码,下载地址ltp源码,把此压缩文件解压后的所有文件放在上图中的ltp空文件夹中,如下图
第二步 将文件夹上传到Linux服务器上
将上面结合的解压文件上传到远程Linux服务器上,这个上传就不多说啦!
第三步 安装
进入pyltp目录下,运行setup.py文件进行安装,命令如下:
python setup.py install
- 1
安装过程中可能会报出一些小错误,先不要管,看最后的安装结果,是否完成了安装,如下是我的安装完成后的提示
第四步 测试是否能用
正常情况下,pyltp就能正常使用了,这是pyltp的官方使用手册,需要下载对应版本的LTP模型,LTP模型地址
在第三步的安装成功后,有提示我安装的pyltp的版本是0.2.1,对应的模型版本是3.4.0,具体怎么调用模型看上面的手册。
解决思路
我第一次安装的时候按照pyltp项目的github上给的安装方法,没有在ltp文件夹下添加文件,报的错误如下,致命错误,找不到SplitSentence.h文件
看上面的警告提示 没有在ltp文件夹下找到XXX目录,可能原因出在这里。
我就想起来在github上还有ltp这个项目,ltp项目下的\src\splitsnt文件夹下恰好有SplitSentence.h文件,
把整个ltp项目下载下来,加压放在pyltp中的ltp空文件夹中,再次运行,成功,jupyterlab下的测试pyltp可用。
参考资料:
1、https://blog.csdn.net/weixin_40632008/article/details/89682109 2019.12.26