PyLucene 安裝教學 (Ubuntu環境)

Chao-Hsuan Ke
小小實驗室
Published in
6 min readDec 28, 2019

採了很多坑,用了兩天換來的心得 。

踩到什麼坑就不說了,這邊直接講需要安裝哪些,跟著做就可以了!!

為了方便替換,這邊用 docker 先建立起一個 ubuntu 環境,因此所有的安裝過程皆可以在 ubuntu 機器上重構一次 。

因為自己試了很多種組合才成功,例如 pylucene-6.5.0 跟 Python2 可能相衝導致安裝都失敗,下面是這次安裝成功的各套件(與相依套件)版本 :

環境

Ubuntu 18.04.3 LTS

Pylucene-8.1.1

Java openJDK-1.8.0_232 (64-bit)

安裝過程

1)用 docker 建立 ubuntu 環境

docker pull ubuntu

查詢 image 名稱後建立該 image 內的 container

image 名稱預設為 ubuntu

docker create ubuntu

基於 ubuntu 這個 image 下啟動 container

docker run -t -i ubuntu /bin/bash

2) 安裝相關套件

apt-get update
  • Java openJDK (1.8.0_232)
apt install openjdk-8-jdk
  • ant (1.10.5–3~18.04)
apt-get install ant
  • build-essential (gcc 7.4.0)
apt-get install build-essential
  • manpages-dev (4.15–1)
apt-get install manpages-dev
  • software-properties-common
apt-get install software-properties-common
  • python-dev (2.7.15~rc1–1)
apt-get install python-dev
  • libicu-dev (60.2–3ubuntu3)
apt-get install libicu-dev
  • python3-pip (9.0.1–2.3~ubuntu1.18.04.1)
apt-get install python3-pip
  • PyICU (2.4.2)
apt-get install -y python-pyicu
  • 升級 gcc 和 g++
# add-apt-repository ppa:ubuntu-toolchain-r/test# apt install gcc-7 g++-7 gcc-8 g++-8 gcc-9 g++-9# update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90 --slave /usr/bin/g++ g++ /usr/bin/g++-9 --slave /usr/bin/gcov gcov /usr/bin/gcov-9# update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 80 --slave /usr/bin/g++ g++ /usr/bin/g++-8 --slave /usr/bin/gcov gcov /usr/bin/gcov-8

3) 修改設定檔

下載好 pylucene-8.1.1-src.tar.gz 後進行解壓縮,之後進入 jcc 資料夾內,並修改 setup.py

# wget http://mirror.23media.de/apache/lucene/pylucene/pylucene-8.1.1-src.tar.gz# tar -zxvf pylucene-8.1.1-src.tar.gz# cd pylucene-8.1.1/jcc/# vim setup.py

修改JDK 設定,把 ‘linux’ 部分改成 docker 內安裝 Java jdk 的位置

JDK = {
'darwin': JAVAHOME or JAVAFRAMEWORKS,
'ipod': '/usr/include/gcc',
'linux': '/usr/lib/jvm/java-8-openjdk-amd64', // <jvm位置>
'sunos5': '/usr/jdk/instances/jdk1.6.0',
'win32': JAVAHOME,
'mingw32': JAVAHOME,
'freebsd7': '/usr/local/diablo-jdk1.6.0'
}

執行 jcc 安裝

# python3 setup.py build# python3 setup.py install

回到上一層 pylucene 位置後,修改 Makefile

# cd ..# vim Makefile

uncomment 其中一個設定,並修改 JAVA_HOME 為 JDK 安裝位置

PREFIX_PYTHON=/usr
ANT=JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 /usr/bin/ant
PYTHON=$(PREFIX_PYTHON)/bin/python3
JCC=$(PYTHON) -m jcc --shared
NUM_FILES=10

存擋後,就可以執行編譯與安裝了

4) 執行編譯與安裝

# make# make install

5) 驗證 pylucene 是否安裝成功

進入 test3 資料夾內執行測試程式

python3 test_PyLucene.py

若出現 OK 即表示安裝已完成且正確。

--

--

Chao-Hsuan Ke
小小實驗室

永遠熱愛自己的工作,總是找一堆事把自己的時間塞滿。喜歡接觸不同領域,像是 歷史、文化、金融和公共政策 等議題,期許著自己會什麼就分享什麼。