본문 바로가기

programmer/python

JVMNotFoundException 처리

윈도우 x64에서 konlpy를 적용하다 보면 

nlp = Okt()
No JVM shared library file (jvm.dll) found. Try setting up the JAVA_HOME environment variable properly.

위와 같은 에러를 발견하게 된다.

친절한 에러 로그 대로 JAVA_HOME 환경 설정을 따라 하다간... 안 끝난다. JDK에서 JVM 경로 설정하는 함수(['getDefaultJVMPath)가 오기능하여 작동한 것으로 보인다. 아마도 업데이트되면 해결되지 않을까 싶은대 아직은 그대로이다. 고생하지 말고 아래와 같이 따라가 보자.

1. 문제 원인 찾기

문제가 발생한 부분 첫번째 if 문에 걸리지 않고 else:를 타서 리눅스 JVM을 찾게 됐다.. win32 가 아닐 수도 있잖아!

파일 위치: ~\AppData\Local\Programs\Python\Python37\Lib\site-packages\jpype\jvmfinder.py

2. JVM 경로 찾기

정상적으로 JDK를 설치하였다면 해당 경로에 설치되어 있다.

파일 위치: ~\Java\jdk-15.0.1\bin\server\jvm.dll

 

3. 수동으로 JVM 경로 입력해 주기

파일 위치: ~\AppData\Local\Programs\Python\Python37\Lib\site-packages\konlpy\jvm.py

수정할 코드는 def init_jvm 함수 안에 있다.

jvmpath를 수동으로 jvm.dll 경로를 입력해 주고 경로 입력 시에 경로 구분은 \(역 슬레시) 가 아닌 /를 사용해서 입력해야한다. python string은 \를 특수 문자로 사용하기 때문에 어떤 side effect 가 발생할지 모른다.

 

(주의) 파일 수정 한 후엔 꼭 Jupyter lab 을 reset 한 후에 코드를 실행 시켜야 한다.

 

문의가 있다면 덧글로..

반응형
사업자 정보 표시
라울앤알바 | 장수호 | 서울특별시 관악구 봉천로 13나길 58-10, 404호(봉천동) | 사업자 등록번호 : 363-72-00290 | TEL : 010-5790-0933 | Mail : shjang@raulnalba.com | 통신판매신고번호 : 2020-서울관악-0892호 | 사이버몰의 이용약관 바로가기