본문 바로가기

Dev/TIP 팁

[TIP] KoNLPY 사용시 jvm.dll 인식 오류 및 JAVA_HOME 설정

728x90

파이썬에서 한글 자연어 처리를 위해서 KoNLPy 패키지를 설치 및 사용하려고 합니다.

 

해당 패키지를 사용하기 위해서는 JDK(JAVA), JPype1, KoNLPy의 순차적인 설치가 필요한데,

위 라이브러리 및 패키지를 모두 설치하고 코드를 실행시켰을 때

아나콘다 환경에서는 종종 다음과 같은 오류가 발생하기도 합니다.

 

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

 

솔루션은 JDK 설치 시 설정했던 JAVA_HOME 환경변수를 제대로 인식해주도록 하는 것인데,

아무리 환경변수를 제대로 설정하더라도 끝까지 인식을 못하는 경우가 많더군요.

 

그래서 아예 jpype의 jvm을 찾는 코드에서 직접 JDK의 경로를 넣어주도록 하였습니다.

 

 

1. 디렉토리 찾아가기

C:\ProgramData\Anaconda3\Lib\site-packages\jpype\_jvmfinder.py

jpype 패키지의 jvm을 찾는 소스코드는 보통 다음과 같은 디렉토리 경로에 위치해있습니다.

종종 숨김 폴더 옵션 때문에 Program Data가 보이지 않을 수도 있으니, 그럴땐 숨김 폴더 옵션을 해제해주시면 됩니다.

 

2. 소스코드 수정

1) 해당 소스코드를 오픈한 후 _get_from_java_home() 메소드를 찾습니다.

2) 기존에 있던 JAVA_HOME 환경 변수로 JDK 경로를 찾던 코드를 주석처리 해줍니다.

3) 직접 JDK 설치 경로를 입력해줍니다. 이때 os.getenv()를 사용하는 것이 아닌, 문자열 형태 그대로 입력하는 것이 중요합니다. os.getenv() 메소드를 이용하면 여전히 계속 오류가 발생하기도 하기 때문입니다.

 

 

위와 같은 처리 후에는 다행히 JDK를 잘 찾아가서 정상적으로 동작하였습니다.

오류 해결에 참고한 웹페이지 링크를 글 하단에 첨부해놓았습니다.

 

감사합니다.

 

참고 링크: https://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=talkbox2&wr_id=1147061

728x90