ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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" 문자열을 변경
    반응형

    댓글

문의: jwkang3929@naver.com