-
[KoNLPy] No JVM shared library file found 문제 해결하기Python/자연어처리 2024. 9. 19. 11:33반응형
KoNLPy 이용시 No JVM shared library file (jvm.dll) found 문제 해결하기
파이썬(Python)에서 텍스트 분석을 하기 위해서 흔히 쓰는 패키지로 KoNLPy가 있습니다. 그런데, 이 패키지를 쓸 때는 자바 개발환경 설정에 따라서 다양한 에러가 발생하는데요, 제가 흔히 경험한 에러는 JVMNotFoundExeption: No JVM shared library file (jvm.dll) found... 에러입니다. 에러 메시지를 잘 읽어보면, JAVA_HOME 환경변수 설정이 잘못되었다는 이야기인데요, 자바를 설치하라는대로 잘 설치했음에도 불구하고 에러가 생기는 경우가 있어서 골치 아픈 문제입니다.
이 문제는 다양한 해결 방법이 제시되고 있는데, 아마 개발 환경에 따라 다양한 원인으로 발생할 수 있는 문제인가봅니다. 이번에는 제가 작업하는 몇 대의 컴퓨터에서 No JVM shared library file (jvm.dll) found를 해결한 사례를 소개해 드리겠습니다. KoNLPy 설치 페이지에서 안내하는대로 진행했다고 가정하고, 운영체제는 윈도우 11 기준으로 설명할테니 참고해 두세요.
커널 및 컴퓨터 재시작
당연한 이야기지만, 의외로 이걸 깜빡해서 문제가 생기는 경우가 많았습니다. 파이썬에서는 각종 패키지 설치 또는 환경 변수가 변경되었을 때 반드시 커널을 재시작해 주시고, 경우에 따라서 컴퓨터를 재시작해 주셔야 합니다.
JDK 및 JPype1 설치 확인
- JDK 설치 페이지 에서 운영체제 및 아키텍처에 맞는 JDK가 설치되어 있는지,
- 터미널 명령어로
pip install JPype1
를 입력해 JPype1을 설치했는지 체크해 줍니다.
KoNLPy 공식 안내에 따르면, JDK 설치 - JAVA_HOME 환경 변수 설정 - JPype1 설치 - KoNLPy 설치 순서로 안내하고 있는데, 꼭 순서대로 하지는 않으셔도 됩니다.
JAVA_HOME 환경 변수 설정
가장 흔히 발생하는 문제는 단순히 JDK와 JPype1 설치 후에도 JAVA_HOME 환경 변수가 등록되지 않은 경우입니다.
시스템 환경 변수 편집 - 환경 변수 메뉴에서 JAVA_HOME이라는 이름의 환경 변수를 추가해 주는 방법으로 해결할 수 있습니다. 개발환경 설정에 따라 사용자에 대한 환경 변수 또는 시스템 환경 변수 중 하나를 선택해 두셔야 하는데, 특별한 경우가 아니라면 둘 다 추가해 주셔도 큰 문제가 생기지는 않습니다.
만약, 환경 변수 등록을 하기 싫은 분들이라면 JPype1 패키지의 _jvmfinder.py 파일에서 바로 JAVA_HOME 경로를 지정해 둘 수도 있습니다.
환경 변수 설정을 요약해 보자면, 아래 둘 중 하나에 설치된 JDK 폴더 안에 있는 bin/server 경로를 추가해 두시면 됩니다. 해당 경로는
C:\Program Files\Java\jdk-22\bin\server
형태로 나타납니다.- 시스템 환경 변수 편집 - 환경 변수 메뉴에서 JAVA_HOME 추가
\anaconda3\Lib\site-packages\jpype\_jvmfinder.py
(Anaconda 기준) 파일의java_home = os.getenv("JAVA_HOME")
이라고 표현된 코드에서 "JAVA_HOME" 문자열을 변경
반응형'Python > 자연어처리' 카테고리의 다른 글
[customized KoNLPy] 한국어 사용자 지정 품사 태깅 및 N-gram 분석하기 (0) 2024.09.23 [KoNLPy] 파이썬에서 한국어 토큰화 하는 방법 알아보기 (1) 2024.09.20 [Faiss] 파이스를 이용한 문서 검색 시스템 만들기 (0) 2024.06.28