인프런 커뮤니티 질문&답변

joonhye moon님의 프로필 이미지

작성한 질문수

파이썬 텍스트 분석 입문 - 데이터 수집부터 분석까지

다시 질문 드립니다.

21.02.25 20:01 작성

·

537

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

My Incizor님의 프로필 이미지
My Incizor
지식공유자

2021. 02. 26. 08:49

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

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

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

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 코드를 실행해봅니다.

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

감사합니다!

joonhye moon님의 프로필 이미지
joonhye moon
질문자

2021. 02. 26. 10:06

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