Ubuntu 14.04 安装 PyLucene 踩坑记

  • 系统环境:

        Ubuntu 14.04 64 bit

        系统自带 python2.7

  • 安装:Pylucene: 6.4.1

装这个包花费了好多时间,整体的过程和踩过的坑在这里记录还原一下。


步骤1: 安装Apache

        a. 我安装的版本是 apache-ant-1.10.2。下载地址为:http://ant.apache.org/bindownload.cgi

        b. 解压文件:tar -xf apache-ant-1.10.2-bin.tar.xz

        c. 将该解压好的文件夹移动到 /opt下:sudo mv apache-ant-1.10.2 /opt/

        d. 配置环境变量(在后面步骤中统一写)


步骤2:安装JDK (这里我装过openjdk-6,openjdk-8,和oracle-java8)

     坑1: 这里要注意你所安装的Pylucene 的版本,如果Pylucene的版本和JDK的版本不一致,会报出:java.lang.UnsupportedClassVersionError 的错误。Pylucene 6.0以下 需要JDK7,而pylucene6以上需要JDK8。所以我刚开始使用JDK6就出现了错误。

        a. 安装指令: (安装 JDK8):   sudo apt-get install openjdk-8-jdk   

                                (安装 oracle-java8:)sudo apt-get install oracle-java8-installer

       坑2:之所以安装两种是因为大部分博客上写的使用JDK8可以编译Pylucene成功,但在我这里就无法编译通过,换了oracle-java8就可以,所以这里还是看个人情况。

        b. 配置环境变量 (在后面步骤中统一写)


步骤3 :安装setuptools

        a. 下载whl文件,下载网址:https://pypi.python.org/pypi/setuptools/

        b. 安装:sudo -H pip install setuptools-38.5.2-py2.py3-none-any.whl


步骤4:配置环境变量

        这里需要配置JAVA_HOME 和ANT_HOME的环境变量 (可通过编辑两种文件更改环境变量 1. 针对所有用户: /etc/profile;or 2. 针对当前用户:~/.bashrc)

            a. 打开编辑文件: sudo vim /etc/profile

            b. 在文件最后添加如下内容 (分别为你java和ant的地址):

            export JAVA_HOME=/usr/lib/jvm/java-8-oracle
            export ANT_HOME=/opt/apache-ant-1.10.2
            export JRE_HOME=${JAVA_HOME}/jre
            export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
            export PATH=${JAVA_HOME}/lib:${PATH}:${PATH}:${ANT_HOME}/bin

            注:因为我同时安装了JDK8和Oracle8, 选择使用某版本的时候,可通过指令:

             make -jsudo update-alternatives --config javac
               但要使环境变量中的java和你通过该指令选择的java版本保持一致。

           

            c. 执行: source /etc/profile

            d. 验证:

                   输入: java -version

            java version "1.8.0_161"
            Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
            Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

                    输入:ant -version           

            Apache Ant(TM) version 1.10.2 compiled on February 3 2018

步骤5 :下载解压Pylucene

            a. 下载网址:http://mirror.bit.edu.cn/apache/lucene/pylucene/

            坑3: 网上大部分博客都是针对如何安装Pylucene 6.4的,我先下载了Pylucene6.5的,按照6.4的经验试了很久都没有成功,最后重新下了6.4版本的从头再来...

            b. 解压: Pylucene: tar -zxvf pylucene-6.4.1-src.tar.gz


步骤6: 安装JCC

        a. 进入步骤5解压缩的文件夹: cd pylucene-6.4.1 后进入 jcc文件夹: pushd jcc

          b. 修改jcc文件夹下的setup.py文件,修改的部分为键值为“linux2”部分,将其改为步骤4中环境变量的地址, 保存关闭:

JDK = {
    'darwin': JAVAHOME or JAVAFRAMEWORKS,
    'ipod': '/usr/include/gcc',
    'linux2': '/usr/lib/jvm/java-8-oracle',
    'sunos5': '/usr/jdk/instances/jdk1.6.0',
    'win32': JAVAHOME,
    'mingw32': JAVAHOME,
    'freebsd7': '/usr/local/diablo-jdk1.6.0'
}

        c.执行:python setup.py build

           d. 执行:sudo python setup.py install


步骤7: 安装Ivy

        a. 官网下载:http://ant.apache.org/ivy/download.cgi

          b. 解压并执行 : cp ivy-2.4.0.jar /opt/aoache-ant-1.10.2/lib

         坑4:如果没有安装ivy,不会影响后续进程,但在最终安装成功后,在python中实验 import pyluence 会报错缺少ivy,很影响心情...


步骤8:改写Makefile

       a. 返回至 pylucnen-6.4.1: popd

        b. 编辑改写Makefile: vim Makefile

        找到以下部分代码,进行去注释及编写,其余环境下(Mac OS; Windows等)的该部分代码记得注释掉。

       将python; JAVA_HOME; ANT的地址均按照步骤4中配置的环境变量中的地址填写。

# Linux     (Debian Jessie 64-bit, Python 2.7.9, Oracle Java 1.8
# Be sure to also set JDK['linux2'] 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 /opt/apache-ant-1.10.2/bin/ant
PYTHON=$(PREFIX_PYTHON)/bin/python
JCC=$(PYTHON) -m jcc --shared
NUM_FILES=8
         坑5:由于我一直使用的是Anaconda, 所以我的系统默认的python是Anaconda下的python,而不是系统自带的 /usr/bin/python。而步骤6中安装jcc又会默认装在/usr/bin/python下,导致我环境变量默认的python,安装jcc的python以及上述文件中python的路径,不统一,而我一直忽略了这个问题,导致后续make一直不成功。后来把系统默认的python的环境变量改为/usr/bin/python(在~/.bashrc中的PATH中添加就可以)就成功了。

            c. 保存关闭


步骤9:安装pylucene

        a. 执行: make

        坑6:由于我不是root账户, 我make的过程中发现很多错误来源于permission denied,但也可以成功的build。只是最终测试没有通过。后来改成sudo make 就可以了,不过还是建议先不加sudo尝试一下。

        注: 每次重make前记得 sudo make clean

        b. 执行: sudo make install


步骤10:测试是否安装成功  

        进入python

Python 2.7.6 (default, Nov 23 2017, 15:49:48)
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import lucene
没报错就说明成功啦! 害羞

       




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值