m1 맥 유저로 살아간다는 건 피곤한 일이다.. 하지만 200만원 주고 노트북을 샀으니, 열심히 살아가야지..
이번에는 m1 맥에 konlpy를 설치해보도록 하자.
아래 블로그 글을 참고해서 설치했다.
우선 jdk를 설치해줘야 한다. 요즘 m1전용 jdk가 많이들 나왔다지만, 그 중에서도 Zulu Open JDK의 arm64용 15버전만 konlpy가 제대로 돌아간다고 한다.. 하핳..
위 페이지에서 다운받고 설치하자.
설치완료 후
% open ./.zshrc
를 입력해 zshrc를 열고
# JAVA PATH
export JAVA_HOME=/Library/Java/JavaVirtualMachines/zulu-15.jdk/Contents/Home
export PATH=${PATH}:$JAVA_HOME/bin:
이케 자바 경로를 설정해주자
이렇게 하면 konlpy 설치가 완료되는 줄 알았는데!!
from konlpy.tag import Okt
okt = Okt()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/gidaehyeon/nlp_practice/venv/lib/python3.8/site-packages/konlpy/tag/_okt.py", line 91, in __init__
jvm.init_jvm(jvmpath, max_heap_size)
File "/Users/gidaehyeon/nlp_practice/venv/lib/python3.8/site-packages/konlpy/jvm.py", line 64, in init_jvm
jpype.startJVM(jvmpath, '-Djava.class.path=%s' % classpath,
TypeError: startJVM() got an unexpected keyword argument 'convertStrings'
요런 에러가 발생한다. 후우..
하지만!! 위 블로그에서 lib/python3.8/site-packages/konlpy/jvm.py 의 맨 아래부분에서 convertStrings 관련한 부분을 주석처리해주면 된다!! 고 했다. 아래처럼
# NOTE: Temporary patch for Issue #76. Erase when possible.
if sys.platform == 'darwin'\
and jvmpath.find('1.8.0') > 0\
and jvmpath.endswith('libjvm.dylib'):
jvmpath = '%s/lib/jli/libjli.dylib' % jvmpath.split('/lib/')[0]
if jvmpath:
jpype.startJVM(jvmpath, '-Djava.class.path=%s' % classpath,
'-Dfile.encoding=UTF8',
'-ea', '-Xmx{}m'.format(max_heap_size),
#convertStrings=True
)
else:
raise ValueError("Please specify the JVM path.")
어림도 없지
from konlpy.tag import Okt
okt = Okt()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/gidaehyeon/nlp_practice/venv/lib/python3.8/site-packages/konlpy/tag/_okt.py", line 91, in __init__
jvm.init_jvm(jvmpath, max_heap_size)
File "/Users/gidaehyeon/nlp_practice/venv/lib/python3.8/site-packages/konlpy/jvm.py", line 64, in init_jvm
jpype.startJVM(jvmpath, '-Djava.class.path=%s' % classpath,
File "/Users/gidaehyeon/nlp_practice/venv/lib/python3.8/site-packages/jpype/_core.py", line 58, in startJVM
_jpype.startup(jvm, tuple(args), True)
RuntimeError: Unable to load DLL [/Library/Java/JavaVirtualMachines/zulu-15.jdk/Contents/Home/lib/server/libjvm.dylib], error = dlopen(/Library/Java/JavaVirtualMachines/zulu-15.jdk/Contents/Home/lib/server/libjvm.dylib, 9): no suitable image found. Did find:
/Library/Java/JavaVirtualMachines/zulu-15.jdk/Contents/Home/lib/server/libjvm.dylib: mach-o, but wrong architecture
/Library/Java/JavaVirtualMachines/zulu-15.jdk/Contents/Home/lib/server/libjvm.dylib: mach-o, but wrong architecture at native/common/include/jp_platform_linux.h:45
또 새로운 에러가 발생했다.
위 깃헙 이슈글을 살펴보고 에러를 해결해보고자 했다. 근데, 내가 받은 Jpype1의 setup.py에는 java_home 변수가 없었다.
근데 혹시나 해서 파이썬 3.9, m1 버전 파이썬에서 konlpy를 실행했더니
from konlpy.tag import Okt
okt = Okt()
[0.006s][warning][os,thread] Attempt to protect stack guard pages failed (0x00000001698d0000-0x00000001698dc000).
[0.006s][warning][os,thread] Attempt to deallocate stack guard pages failed.
경고메시지가 뜨긴 했으나 어쨌든 됐다...
알다가도 모를 일이다.. 어쨌든 설치 완료@
'기타 > 파이썬' 카테고리의 다른 글
정규표현식을 알아보자!! (0) | 2021.04.27 |
---|---|
[잡담] 파이썬의 타입 힌트와 typing, mypy를 알아보자! (0) | 2021.03.21 |
3. 판례 전문 txt파일로 저장하기 - 판례를 크롤링해보자 (1) | 2021.03.01 |
2. 판례 목록 수집 - 판례를 크롤링해보자 (6) | 2021.02.28 |
1. 국가법률정보 API 사용법 - 판례를 크롤링해보자 (0) | 2021.02.27 |
댓글