• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

다시 질문 드립니다.

21.02.25 20:01 작성 조회수 454

0

konlpy 설치를 성공했는데, 그 다음이 진행되지 않아요. 

Collecting konlpy
  Downloading konlpy-0.5.2-py2.py3-none-any.whl (19.4 MB)
Collecting beautifulsoup4==4.6.0
  Downloading beautifulsoup4-4.6.0-py3-none-any.whl (86 kB)
Requirement already satisfied: JPype1>=0.7.0 in c:\users\samsung\anaconda3\lib\site-packages (from konlpy) (1.1.2)
Requirement already satisfied: lxml>=4.1.0 in c:\users\samsung\anaconda3\lib\site-packages (from konlpy) (4.6.1)
Collecting tweepy>=3.7.0
  Downloading tweepy-3.10.0-py2.py3-none-any.whl (30 kB)
Requirement already satisfied: numpy>=1.6 in c:\users\samsung\anaconda3\lib\site-packages (from konlpy) (1.19.2)
Requirement already satisfied: colorama in c:\users\samsung\anaconda3\lib\site-packages (from konlpy) (0.4.4)
Requirement already satisfied: six>=1.10.0 in c:\users\samsung\anaconda3\lib\site-packages (from tweepy>=3.7.0->konlpy) (1.15.0)
Requirement already satisfied: requests[socks]>=2.11.1 in c:\users\samsung\anaconda3\lib\site-packages (from tweepy>=3.7.0->konlpy) (2.24.0)
Collecting requests-oauthlib>=0.7.0
  Downloading requests_oauthlib-1.3.0-py2.py3-none-any.whl (23 kB)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in c:\users\samsung\anaconda3\lib\site-packages (from requests[socks]>=2.11.1->tweepy>=3.7.0->konlpy) (1.25.11)
Requirement already satisfied: idna<3,>=2.5 in c:\users\samsung\anaconda3\lib\site-packages (from requests[socks]>=2.11.1->tweepy>=3.7.0->konlpy) (2.10)
Requirement already satisfied: certifi>=2017.4.17 in c:\users\samsung\anaconda3\lib\site-packages (from requests[socks]>=2.11.1->tweepy>=3.7.0->konlpy) (2020.6.20)
Requirement already satisfied: chardet<4,>=3.0.2 in c:\users\samsung\anaconda3\lib\site-packages (from requests[socks]>=2.11.1->tweepy>=3.7.0->konlpy) (3.0.4)
Requirement already satisfied: PySocks!=1.5.7,>=1.5.6; extra == "socks" in c:\users\samsung\anaconda3\lib\site-packages (from requests[socks]>=2.11.1->tweepy>=3.7.0->konlpy) (1.7.1)
Collecting oauthlib>=3.0.0
  Downloading oauthlib-3.1.0-py2.py3-none-any.whl (147 kB)
Installing collected packages: beautifulsoup4, oauthlib, requests-oauthlib, tweepy, konlpy
  Attempting uninstall: beautifulsoup4
    Found existing installation: beautifulsoup4 4.9.3
    Uninstalling beautifulsoup4-4.9.3:
      Successfully uninstalled beautifulsoup4-4.9.3
Successfully installed beautifulsoup4-4.6.0 konlpy-0.5.2 oauthlib-3.1.0 requests-oauthlib-1.3.0 tweepy-3.10.0

그리고 나서 from~으로 진행했는데,
---------------------------------------------------------------------------
JVMNotFoundException                      Traceback (most recent call last)
<ipython-input-6-d574e370b2da> in <module>
      1 from konlpy.tag import Okt
----> 2 okt = Okt()
      3 okt.pos("konlpy의 설치를 성공적으로 마쳤습니다.")

~\anaconda3\lib\site-packages\konlpy\tag\_okt.py in __init__(self, jvmpath, max_heap_size)
     89     def __init__(self, jvmpath=None, max_heap_size=1024):
     90         if not jpype.isJVMStarted():
---> 91             jvm.init_jvm(jvmpath, max_heap_size)
     92 
     93         oktJavaPackage = jpype.JPackage('kr.lucypark.okt')

~\anaconda3\lib\site-packages\konlpy\jvm.py in init_jvm(jvmpath, max_heap_size)
     53     classpath = os.pathsep.join(f.format(*args) for f in folder_suffix)
     54 
---> 55     jvmpath = jvmpath or jpype.getDefaultJVMPath()
     56 
     57     # NOTE: Temporary patch for Issue #76. Erase when possible.

~\anaconda3\lib\site-packages\jpype\_jvmfinder.py in getDefaultJVMPath()
     72     else:
     73         finder = LinuxJVMFinder()
---> 74     return finder.get_jvm_path()
     75 
     76 

~\anaconda3\lib\site-packages\jpype\_jvmfinder.py in get_jvm_path(self)
    210         if jvm_notsupport_ext is not None:
    211             raise jvm_notsupport_ext
--> 212         raise JVMNotFoundException("No JVM shared library file ({0}) "
    213                                    "found. Try setting up the JAVA_HOME "
    214                                    "environment variable properly."

JVMNotFoundException: No JVM shared library file (jvm.dll) found. Try setting up the JAVA_HOME environment variable properly.

이렇게 나옵니다.

답변 1

답변을 작성해보세요.

0

안녕하십니까, 인사이저입니다.

질문에 답변해드리겠습니다.

보내주신 스크린샷을 확인해본 결과,

konlpy에서 JVM 파일을 찾지 못하고 있는 것으로 보입니다.

해당 에러는 대개 3가지 경우로 인해 발생할 수 있는데요, 다음과 같습니다.

1.  JDK(혹은 JRE)를 설치하지 않음

2. JDK(혹은 JRE)를 설치하였지만 환경변수로 경로를 지정하지 않음

3. 설치하고 환경변수를 설정하였음에도 konlpy 모듈(사실은 Jpype가 못찾는 거긴 합니다)이 JDK(혹은 JRE) 경로를 찾지 못함

각 상황에 대해 어떻게 진행하면 되는 지 알려드리겠습니다.  1번 2번은 함께 이루어져야 하므로 같이 설명하겠습니다.

1. JDK(JRE) 설치 / JDK(JRE) 환경 변수 경로 설정

1-0. 컴퓨터 운영체제 및 사양 파악. 컴퓨터 환경이 윈도우 인지, 리눅스인지, 맥os인지, 그리고 윈도우라면 32비트 운영체제 인지 64비트 운영체제 인지 꼭 파악해야합니다! 운영체제마다 설치해야 하는 파일이 다릅니다. 아래 설명은 윈도우 64비트 운영체제를 기준으로 설명하고 있습니다. 다른 운영체제일 경우엔 문의 주세요.

1-1. 구글에서 jre 검색, 경로가 www.java.com/download 인 사이트 열고 Windows용 64비트 Java 설치

1-2. 설치한 파일을 그대로 실행합니다. 다만 경로를 지정할 때 '한글 경로가 들어가는 경우'는 최대한 피합니다. 그대로 설치한다면 C:\Program Files\Java 경로에 설치될 것입니다. 

1-3. 시스템 환경 변수로 이동합니다. 환경 변수로 접근하는 방법은 아래의 스크린샷을 참조하세요.

1-4. 환경 변수 창을 보면 아래에 '시스템 변수'라고 있습니다. 새로 만들기를 클릭하고, 변수 이름을 JAVA_HOME으로, 변수 값은 이전에 설치한 jre 경로를 설정하면 됩니다. 아까 말씀드린 것처럼 일반적으로 설치하였으면 c:\Program Files\Java\jre1.8.0_281 로 설정되어 있을 겁니다.

1-5. 시스템 변수에서 Path를 찾습니다.('XXX에 대한 사용자 변수'에서 설정하셔도 됩니다) Path를 선택 후 편집을 클릭, 창이 하나 뜨면 New(새로 만들기)를 눌러서 '%JAVA_HOME%\bin' 을 입력합니다.

1-6. 모두 확인을 눌러 환경 변수에서 빠져나오고, 명령 프롬프트(cmd)를 켭니다. 거기서 'java -version'을 쳐서 아래의 이미지 처럼 나오면 설치 완료입니다.

이렇게 jre 설치 및 환경 변수 설정을 마친 후에, 주피터 노트북을 전부 종료했다 다시 열어서 konlpy를 실행해보시기 바랍니다. 그럼에도 안된다면 다음 방법을 시도해보세요.

2. konlpy 모듈 내에서 java_home 경로 직접 입력

2-1. 먼저 아나콘다 경로를 찾습니다. 일반적으로 설치하였으면 c:\user(사용자)\<계정명>\anaconda3 에 설치되어 있을 겁니다.

주피터 노트북을 켜보면 바로 뜨는 화면이 c:\user(사용자)\<계정명> (저같은 경우는 C:\user\tjlee 입니다)입니다. 이 폴더를 root 폴더라고 일반적으로 부르기도 합니다. 주피터 노트북 내에서 anaconda3를 찾습니다. 만약 보이지 않거나 다른경로로 설치하였으면 윈도우 검색으로 찾아봅시다.

2-2.주피터 노트북 내에서 anaconda3\Lib\site-packages\jpype\_jvmfinder.py 로 들어갑니다.

2-3. 그럼 긴 코드가 뜰텐데, 절대 다른 코드는 건들지 마시고(잘못 건들면 아예 konlpy를 못쓸 수도 있습니다) def _get_from_java_home(self): 로 시작하는 코드를 찾습니다. ctrl+F를 눌러서 찾아도 되고, 아마 이전 설명서에 맞게 설치였다면 217번째 줄에 있을 것입니다.

2-4. _get_from_java_home 함수 안에서 'java_home = os.getenv("JAVA_HOME")'라는 코드가 보이실 겁니다(226번째), 그 아래에 엔터를 쳐서 이전에 찾아갔던 jre 파일 경로를 입력합니다. 경로 작성하실 때는 원화 기호나 백슬래쉬(\)가 아니라, 슬래쉬로 경로를 설정하는 것을 추천드립니다(/).

java_home = "C:/Program Files/Java/jre1.8.0_281"

입력하시면 아마 아래의 이미지처럼 될 것입니다. 꼭 들여쓰기도 잘 맞춰주세요!

설정을 마쳤으면 코드 파일은 저장하고(ctrl+S 나 상단 메뉴의 File, save 버튼 클릭) 주피터 노트북을 전부 끄신다음에, 다시 실행하여 Konlpy 코드를 실행해봅니다.

한번 알려드린대로 진행해보시고, 그럼에도 문제가 생길경우 언제든 문의 주시기 바랍니다.

감사합니다!

설치 성공했습니다. 감사합니다.!!