konlpy install 오류 해결 방법 - hexists/konlpy GitHub Wiki

konlpy install 오류 해결 방법

konlpy를 이용할 때, 가장 자주 만나는 오류가 install(설치)와 관련된 오류입니다.
본 글에서는 설치와 관련된 오류의 해결 방법들을 정리합니다.

현황

현 시점(2020.09.12)에 konlpy의 issues에 등록된 이슈( 265개 ) 중 install(설치)와 관련된 이슈는 132개(약 50%)입니다.
많은 사용자가 konlpy 사용할 때 설치의 어려움을 겪고 있습니다.

install.png

오류와 해결 방법

실제로 이슈에 등록된 install 관련 오류들입니다.

이제 오류들을 어떻게 해결했는지에 대해 정리해보겠습니다.

오류 1, Anaconda python2.7ver SyntaxError: invalid syntax

SyntaxError

오류 내용은 conda 환경에서 jpype 설치가 제대로 안되는 경우입니다.
이 문제를 해결하는 방법은 conda에서 제공하는 jpype를 설치하면 됩니다.

오류 현상

conda python2.7에서 jpype 설치시 실패합니다.

오류 해결

$ conda install -c conda-forge jpype1

간단해 보일 수도 있지만, conda 환경에 맞는 라이브러리 설치가 필요한 내용으로, jpype 문서에 관련 내용이 설명되어 있습니다. doc

JPype can be installed as pre-compiled binary if you are using the Anaconda Python stack. Binaries are available for Linux, OSX, and windows on conda-forge.

Ensure you have installed Anaconda/Miniconda. Instructions can be found here.

Install from the conda-forge software channel:

conda install -c conda-forge jpype1

오류 2, Java package 'kr.lucypark.kkma' is not valid 오류

jupyter에서 konlpy의 kkma를 찾지 못하는 오류입니다.
이 문제는 konlpy가 설치된 python과 jupyter가 실행된 python binary가 달라 발생하는 문제입니다. (그렇게 생각됩니다.)

오류 현상

jupyter에서 kkma를 실행시 AttributeError: Java package 'kr.lucypark.kkma' is not valid 와 같은 메세지가 발생됩니다.

오류 해결

jupyter 환경에서 python binary의 설치 경로와 konlpy의 설치 여부를 확인합니다.

#jupyter에서 사용하는 python3 path 확인
!which python3
/path/to/bin/python3

#python3 path를 base로 konlpy의 kkma가 잘 있는지 확인
!ls /path/to/lib/python3.7/site-packages/konlpy
__init__.py   constants.py  data          internals.py  stream
__pycache__   corpus.py     data.py       java          tag
about.py      csvutils.py   downloader.py jvm.py        utils.py

!ls /path/to/lib/python3.7/site-packages/konlpy/java/bin/kr/lucypark/kkma
KkmaInterface$1.class KkmaInterface$3.class KkmaInterface.class
KkmaInterface$2.class KkmaInterface$4.class

jupyter

이렇게 확인 후에 jupyter에서 konlpy를 다시 설치해서 문제를 해결할 수 있습니다.

기타, python2 jpype 오류 해결 방법

konlpy를 사용할 때 jpype와 관련된 오류가 자주 발생합니다.
(주로 설치 관련)
jpype는 python에서 java로 개발된 라이브러리를 실행할 수 있게 해주는 것으로 kkma, komoran 등의 형태소 분석기를 지원하는 konlpy에서는 꼭 필요한 패키지입니다.

konlpy를 사용하면서 경험했던 오류 해결 방법을 정리합니다.

mac 환경(mac os catalina(10.15.6))입니다.

python2.7

먼저 Jpype1을 0.7.0 버전으로 설치하고, konlpy를 설치해야 합니다.

$ pip install Jpype1==0.7.0

$ pip install konlpy

konlpy를 바로 설치하면, 아래와 같은 오류를 마주하게 됩니다.
Jpype 최신 버전을 설치하면서 python2.x의 문법과 맞지 않아 syntax 오류가 발생합니다.

$ pip install konlpy

...

Collecting Jpype1
  Using cached JPype1-1.0.2.tar.gz (748 kB)
    ERROR: Command errored out with exit status 1:
     command: /Users/daniellee/test_konlpy_py2/.venv/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/75/nt617n5n4r5c13k8fhkg9gy00000gn/T/pip-install-BFZydt/Jpype1/setup.py'"'"'; __file__='"'"'/private/var/folders/75/nt617n5n4r5c13k8fhkg9gy00000gn/T/pip-install-BFZydt/Jpype1/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /private/var/folders/75/nt617n5n4r5c13k8fhkg9gy00000gn/T/pip-pip-egg-info-vNtKpB
         cwd: /private/var/folders/75/nt617n5n4r5c13k8fhkg9gy00000gn/T/pip-install-BFZydt/Jpype1/
    Complete output (10 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/private/var/folders/75/nt617n5n4r5c13k8fhkg9gy00000gn/T/pip-install-BFZydt/Jpype1/setup.py", line 21, in <module>
        import setupext
      File "setupext/__init__.py", line 21, in <module>
        from . import build_ext
      File "setupext/build_ext.py", line 121
        print("LIB = %s" % library, file=fd)
                                        ^
    SyntaxError: invalid syntax
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

소감

konlpy는 한국어 자연어처리의 진입점이라고도 생각됩니다.
가장 쉽게 사용할 수 있고 다양한 형태소 분석기를 지원해서 사용도가 매우 높습니다.
이런 konlpy의 발전을 위해서는 설치에서 마주할 수 있는 다양한 오류들에 대한 적절한 가이드가 필요하다고 생각됩니다.
본 글이 그런 부분에서 조금이나라 도움이 되면 좋겠습니다.

수정사항이 있다면 [email protected]으로 연락부탁드립니다.
감사합니다.

⚠️ **GitHub.com Fallback** ⚠️