자연어 처리 공부를 하려고 KoNLPy를 사용하고 싶었다. 그런데 자꾸 다음과 같은 오류가 날 괴롭혔다.
No JVM shared library file (jvm.dll) found. Try setting up the JAVA_HOME environment variable properly.
이 오류가 무엇 인고하니 JAVA_HOME 경로에 jvm.dll 파일이 없어서 생기는 문제였다.
첫 번째 방법
: 나는 해결이 안 됐지만 이 방법으로 해결한 사람들이 많아 보였다.
찾아보니 jvm.dll 파일이 C:\Program Files\Java\jdk-17.0.2\bin\server\ 안에 있길래 JAVA_HOME을 C:\Program Files\Java\jdk-17.0.2으로 추가하고 Path에 % JAVA_HOME%\bin\server\을 추가했다. 이후에 프롬프트 창을 켜서 파이썬 버전에 맞는 JPype를 다시 설치하고 KoNLPy도 다시 깔았다.
JPype는 여기서 다운로드하면 된다.
하지만 여전히 똑같은 에러....ㅠ
두 번째 방법
: 이 방법으로 해결됐다!!!
계속 구글링을 하다 보니 아예 코드를 뜯어고치는 방법이 있었다. 아나콘다가 설치된 폴더를 찾아가서 Lib\site-packages\jpype에 보면 _jvmfinder.py라는 파일이 있다. 이 파일을 보면 _get_from_java 모듈에 java_home이라는 변수가 있다. 원래는 os.getenv("JAVA_HOME")이라고 되어 있는데 얘를 그냥 아까 JAVA_HOME에 넣었던 주소로 바꿔주면 된다. 무서워서 원래 코드를 주석 처리하고 조심스럽게 했다.
수정하고 또 JPype랑 KoNLPy 다시 설치했다. 그랬더니 드디어 오류가 발생하지 않았다. 파이썬 똑똑한 척은 다 하더니 환경 변수 하나 못 가져오는 녀석이였네....
나는 자바랑 파이썬 둘 다 64-bit 였고 원래 JPype도 깔려있었다. 왜 환경 변수가 없었는지는 모르겠지만 이전에 코틀린 연습할 때는 문제가 없었다. 야밤에 해결하느라 힘들었다.
'etc > memo' 카테고리의 다른 글
[Linux/Ubuntu] Release file is not valid yet. Updates for this repository will not be applied. 해결 (0) | 2022.05.22 |
---|---|
[Python] Module Downgrade (0) | 2022.05.20 |
자질구레한 잡기술 (0) | 2022.02.19 |
apt vs apt-get (0) | 2022.02.13 |
Shell Script (0) | 2022.01.23 |