[Python] M1 mac Konlpy 오류 : No JVM shared library file (libjli.dylib) found (feat. Kkma, Okt)
python

[Python] M1 mac Konlpy 오류 : No JVM shared library file (libjli.dylib) found (feat. Kkma, Okt)

m1 mac을 사용하면서 다양한 오류를 접하고 해결 해왔지만 이번엔 조금 달랐던 것 같다.

 

윈도우 환경에서는 Jpype 라이브러리, Java JDK 등을 비교적 쉽게 변경할 수 있지만 m1 mac은 그렇지 않았기 때문에 Jpype의 버전 문제인 것인지 JDK의 문제인 것인지 정확히 파악하기가 어려웠기 때문이다.

 

최초로 No JVM found 에러를 마주했을 때 다른 분들의 해결 방법으로는 azul jdk-15를 설치하면 해결된다는 포스팅을 접했지만, 나는 이걸로 해결이 되지 않았다. No JVM을 계속 마주할 뿐.. 심지어는 jpype의 _jvmfinder.py를 수정해도 마찬가지였다. 본질적인 문제가 있는 것 같았다.

 

Java Download | Java 8, Java 11, Java 13 - Linux, Windows & macOS

Download Java Builds of OpenJDK 8, 11, 13 & 15. Azul Zulu Builds of OpenJDK runs on Linux, Windows, macOS & Solaris on X86, Arm, SPARC & PPC

www.azul.com

 

윈도우 환경에서 설치할 때는 JDK 1.8과 JPype1‑1.1.2‑cp38‑cp38‑win_amd64.whl 를 설치하면서 해결되었기에 찾아보려 했으나, mac용으로는 whl 파일이 존재하지 않았다.

 

Python Extension Packages for Windows - Christoph Gohlke

by Christoph Gohlke, Laboratory for Fluorescence Dynamics, University of California, Irvine. Updated on 26 June 2021 at 07:53 UTC. This page provides 32- and 64-bit Windows binaries of many scientific open-source extension packages for the official CPython

www.lfd.uci.edu

 

 

mac에서 설치한 Jpype는 1.2.1이 설치되었기에 Jpype의 older 버전을 설치하려고 시도해보기도 하고, azul jdk 8~11~15를 다 재설정해서 실행해보기도 했지만 전부 무용지물이었다. 하지만 역시 정답은 자바 본진이었다.

 

https://www.oracle.com/java/technologies/javase/jdk8-arm-downloads.html

 

https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

Oracle의 JDK 8(macOS x64)을 설치한 후 ~/.zshrc의 Java Path를 변경하고, 실행하니 다행스럽게도 잘 구동이 되었다.

/Library/Java/JavaVirtualMachines
❯ ls
jdk1.8.0_291.jdk  zulu-11.jdk  zulu-15.jdk  zulu-8.jdk
/Library/Java/JavaVirtualMachines
❯ cd jdk1.8.0_291.jdk
/Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk
❯ pwd
/Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk
# ~/.zshrc 환경변수 설정

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home
export PATH=${PATH}:$JAVA_HOME/bin:

 

 

konlpy 설치 방법은 아래와 같이 진행했다.

# mac
conda install -c conda-forge jpype1
pip install konlpy

# win
pip install wheel
pip install JPype1-1.1.2-cp38-cp38-win_amd64.whl
pip install konlpy