最近工作之余在帮室友搞毕设,做的是一个法律法规搜索引擎,需要将法律法规数据爬下来做索引,了解到用lucene和elasticsearch比较适合,但是本人并不想用java
然后发现一个lucene的python版本pylucene,于是整上,使用还算简单,就是安装过程非常复杂,需要注意的问题很多
参考了chicc大佬在python2.7下的的经验,在此表示感谢
安装所需组件:
1.Python环境
这里的python版本不宜过高,个人认为在python3下3.6最好,这也是后面makefile中写明的配置,否则后面编译可能会出bug导致安装不上
室友的电脑用的3.9,版本太高亲测不行,编译老是报错
我用的是3.7.2 64位版本,安装时存在小bug,但是可以解决
在安装时请尽量避免安装在类似C:\Program Files (x86)这样中间带有空格的目录下,makefile文件识别不出来会报错,如果已经安了那就重装吧囧
然后在path配置python运行的环境变量:
指明你的python安装路径
C:\Users\DELL\AppData\Local\Programs\Python\Python37\
C:\Users\DELL\AppData\Local\Programs\Python\Python37\Scripts\
2.JAVA环境
需要JDK与JRE,64/32位都无所谓,别信他们说只能32位的说法
本人使用的是java 1.8.0 64位版本,个人推荐1.8.2,请尽量使用java8及以上的版本
下载安装后需要配置环境变量
2.1 在环境变量下新建JAVA_HOME变量,变量值为你的jdk安装路径:
2.2 path加入一行
%JAVA_HOME%\bin;%PATH%
2.3 新建变量名CLASS_PATH ,变量值为
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
2.4 将JRE下的bin\server目录加入到path中
示例:
C:\Program Files\Java\jre1.8.0_111\bin\server
3.C++编译环境
我使用的是直接安装最新Visual studio 2019的方法,在官网下载Visual studio 2019即可
在安装界面需要将右侧C++的开发工具库都带上,如果少勾选了不保证编译时不会出问题,尤其是最后三个
下载大概需要30G,流量党请慎重,土豪请无视这句话
4.安装apache ant 及apache ivy
只安装ant也可,后面make时可能会报错提示你ant缺少ivy,到时候再补也行
4.1 可以直接去官网下载
https://ant.apache.org/bindownload.cgi 下载ant的zip版本
http://ant.apache.org/ivy/download.cgi ivy同理
本人使用的是apache-ant-1.9.15和apache-ivy-2.5.0
只需要将ivy的jar包复制到ant目录下的lib文件夹内
然后ivy文件夹就可以删了~
这里提供本人已经复制好的版本
链接:https://pan.baidu.com/s/1JMsS9MAP3jA5lHelSe4HNw
提取码:22s6
4.2配置ant环境变量
将ant下的bin目录加入到path中
5.安装cygwin64
官网:https://www.cygwin.com/install.html
这里提供已下好的版本
链接:https://pan.baidu.com/s/1ZL-Kw4CFPt6MdXyHu3zrdQ
提取码:949h
安装时将package栏点开,找到devel,将右边default改为install,然后安装即可
安装后请一定注意将cywin64安装的bin目录添加进path中,否则cmd中无法将无法使用make命令
有人没用cygwin64用的minGW,没用过不知道行不行
以上是安装pylucne依赖环境的全部内容,接下来安装pylucene
官网下载pylucene
https://www.apache.org/dyn/closer.lua/lucene/pylucene/
本人使用的是7.71,不建议使用过高的版本,可能不稳定
1.安装JCC
命令行cd到pylucene目录下的jcc文件夹下,执行python setup.py build
没有报错则继续执行python setup.py install安装jcc
这里注意python需要在命令行下可用,所以一定要配置好python的环境变量
2.在pylucene文件夹下有个makefile文件,需要对其进行修改后才可编译,不然无法make
找到如下的一串,注意会有很多个类似于
# Mac OS X (Python 2.3.5, Java 1.5, setuptools 0.6c7, Intel Mac OS X 10.4)
#PREFIX_PYTHON=/usr
#ANT=ant
#PYTHON=$(PREFIX_PYTHON)/bin/python
#JCC=$(PYTHON) /System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/JCC-2.3-py2.3-macosx-10.4-i386.egg/jcc/__init__.py
#NUM_FILES=8
# Linux (Debian Jessie 64-bit, Python 3.4.2, Oracle Java 1.8
# Be sure to also set JDK['linux'] in jcc's setup.py to the JAVA_HOME value
# used below for ANT (and rebuild jcc after changing it).
#PREFIX_PYTHON=/usr
#ANT=JAVA_HOME=/usr/lib/jvm/java-8-oracle /usr/bin/ant
#PYTHON=$(PREFIX_PYTHON)/bin/python3
#JCC=$(PYTHON) -m jcc --shared
#NUM_FILES=8
的代码段,只需将任意一组解除注释即可(前面的#号去掉),
然后修改各属性的值:(路径分隔请使用/而不是\,\可能会出问题)
PREFIX_PYTHON的值为你的python安装目录
ANT值为你的ant目录/bin/ant
PYTHON值改为$(PREFIX_PYTHON)/python.exe
JCC值改为$(PYTHON) -m jcc --shared 如果报错可以将--shared去掉试试
修改后保存
示例:
# Mac OS X 10.12 (64-bit Python 3.6, Java 1.8)
PREFIX_PYTHON=C:/Users/DELL/AppData/Local/Programs/Python/Python37
ANT=C:/Users/DELL/Desktop/ppyl/apache-ant-1.9.15/bin/ant
PYTHON=$(PREFIX_PYTHON)/python.exe
JCC=$(PYTHON) -m jcc --shared
NUM_FILES=8
本人在项目中使用到了SmartChineseAnalyzer中文分词器,安装时默认不安装,如果你需要使用该分词器,请参考以下文章对makefile做进一步修改
https://blog.csdn.net/weixin_39575890/article/details/115695115?spm=1001.2014.3001.5501
如果不需要请忽略。
3. make
cd进pylucene的安装目录
输入make执行编译
如果提示make不存在,是因为你没配置好cygwin64的环境变量或者没进目录
在3.7.2下执行make有个奇特的bug,执行后会提示在/jcc3文件夹下缺少....的lib然后无法继续
进入该报错目录发现问题原因是代码路径指错了,根本没有jcc3文件夹只有jcc文件夹,需要的文件在jcc文件夹里边
解决方法是在jcc文件夹找到该lib,复制出来,然后在jcc文件夹旁边新建一个jcc3文件夹,把该lib丢进去即可
重新make后通过
如果在make过程中提示缺少rc.exe,则是因为在安装visual studio过程中没有安装win10 sdk所致,补充安装后即可
make通过后,继续执行make test,最后执行make install
直接跳过make test执行make install也可
安装完成后可以试试在python编译器中import lucene,如果不报错则说明安装OK