JJC's 테크니컬 다이어리

[Lucene]PyLucene 사용을 위한 jcc 빌드 하기 본문

IT활용

[Lucene]PyLucene 사용을 위한 jcc 빌드 하기

털털한JJC 2020. 4. 10. 17:26

setup.py

PyLucene 을 위한 jcc 빌드 하기



Apache Lucene 을 Python 에서 사용하기 위해서는 PyLucene을 빌드해야 한다.


먼저 PyLucene이 사용하고 있는 jcc 라이브러리를 먼저 빌드해야 한다.


설명서가 있지만 생각대로 되지 않는다.


이틀 동안 시도 끝에 jcc 빌드에 성공한 방법을 공유해 본다.


윈도10 64비트 상에서 진행함.


공식 설치방법은 https://lucene.apache.org/pylucene/install.html


전제 조건: 

파이썬이 설치되어 있어야 한다.

JDK가 설치되어 있어야 한다.

Python.exe를 컴파일한 Visual C++ 빌드툴을 설치한다. 

빌드툴 확인 방법은..Python 명령으로..

C:\> Python 

Python 2.7.17 (v2.7.17:c2f86d86e6, Oct 19 2019, 20:49:36) [MSC v.1500 32 bit (Intel)] on win32

Type "help", "copyright", "credits" or "license" for more information.

>>>


위의 라인을 보면 MSC v.1500 32 bit ..이 부분으로 확인가능..(구글링해보면 VS2008 확인가능)

이번 경우 Python 2.7.17 는  Visual Studio 2008 Express 버전을 설치해서 진행하였다. 


파이썬 및 JDK 도 32비트 으로 진행하였다.


[윈도우 환경변수]


PYTHONHOME : C:\Python27

PYTHONPATH : C:\Python27\Lib

JAVA_HOME : C:\Java\java-1.8.0-openjdk-1.8.0.212-1x86


이로서 준비가 끝났다.

이제 PyLucene 8.1.1 (현재 최신 버전) 소스 압축파일을 작업 폴더에 푼다.


C:\pylucene-8.1.1\jcc 폴더로 이동하여,

C:\pylucene-8.1.1\jcc\setup.py 를 편집한다.


16번 라인을 아래와 같이 주석처리하고 하드코딩 한다. (64비트 윈도우에서는 platform.machine()반환값이 AMD64라 문제시됨)

#machine = platform.machine()

machine = "win32"


32라인에 아래와 같이 코드 추가

platform = 'win32'


71라인부터 JDK 정의중 win32부분을 아래와 같이 하드코딩 변경

JDK = {

    'darwin': JAVAHOME or JAVAFRAMEWORKS,

    'ipod': '/usr/include/gcc',

    'linux': '/usr/lib/jvm/java-8-oracle',

    'sunos5': '/usr/jdk/instances/jdk1.6.0',

    'win32': 'C:\Java\java-1.8.0-openjdk-1.8.0.212-1x86',

    'mingw32': JAVAHOME,

    'freebsd7': '/usr/local/diablo-jdk1.6.0'

}


이제 빌드할 준비가 다 되었다.


C:\pylucene-8.1.1\jcc\Python setup.py build 명령으로 빌드를 수행한다.



내 경우 오류 없이 마쳤다.


문의 사항은 댓글 또는 쪽지로..


도움되셨으면 공감 버튼을 눌러주세요~