본문 바로가기
python

Python - Konlpy 설치 오류 시 해결방법 공유 ( ImportError: DLL load failed while importing _jpype, ERROR: Could not install packages due to an OSError:)

by 맑은안개 2021. 4. 20.

Konlpy 설치 중 아래 오류 발생, 처리했던 내용을 공유하고자 한다.


실행환경은

 - Python 3.9.2 64bit

 - Jupyter Lab

 - Window10 64bit

 

jpype pip 설치 오류 시

아래 오류 발생 시 해결방법

ERROR: Could not install packages due to an OSError: [WinError 32] 다른 프로세스가 파일을 사용 중이기 때문에 프로세스가 액세스 할 수 없습니다:

 

1. 커맨드 창 관리자 실행 후 pip install 

 

관리자 cmd 실행

2. 쥬피터 노트북이 실행되어 Python자원을 사용중이라면 종료 후 재 설치


import jpype 오류 시

ImportError: DLL load failed while importing _jpype: DLL 초기화 루틴을 실행할 수 없습니다.

 

해결 방법

- visual c++ redistributable for visual studio 2015 설치 ( CPU 비트수에 맞게 설치 ) 

- JAVA_HOME 환경설정 여부 확인

- jpype 버전에 맞게 설치 되어있는지 확인 ( JPype1‑1.2.0‑cp39‑cp39‑win_amd64.whl > 64 bit )

 

- 위 방법으로도 안될 경우 기존 Jpype 라이브러리 삭제 후 pip install JPype1-py3 설치 ( 이 방법으로 해결 ), 실행 시 아래 오류 발생하면 jvm.py 실행코드를 수정해야 한다. 

~\AppData\Local\Programs\Python\Python39\lib\site-packages\konlpy\jvm.py in init_jvm(jvmpath, max_heap_size)
     62 
     63     if jvmpath:
---> 64         jpype.startJVM(jvmpath, '-Djava.class.path=%s' % classpath,
     65                                 '-Dfile.encoding=UTF8',
     66                                 '-ea', '-Xmx{}m'.format(max_heap_size),

TypeError: startJVM() got an unexpected keyword argument 'convertStrings'

위 오류에 명시 되어 있는 디렉토리로 이동, jvm.py의 64라인의 convertStrings=True 코드를 삭제한다.

정상 Import 및 Class 로드 확인

from konlpy.tag import Kkma, Hannanum, Komoran, Mecab, Okt
from konlpy.utils import pprint
kkma = Kkma()

text = u'설치 중 오류 발생, 실행이 잘 되길 바랍니다. '

print(kkma.morphs(text))
print(kkma.nouns(text))
print(kkma.pos(text))
print(kkma.sentences(text))
['설치', '중', '오류', '발생', ',', '실행', '이', '잘', '되', '기', '를', '바라', 'ㅂ니다', '.']
['설치', '중', '오류', '발생', '실행']
[('설치', 'NNG'), ('중', 'NNB'), ('오류', 'NNG'), ('발생', 'NNG'), (',', 'SP'), ('실행', 'NNG'), ('이', 'JKS'), ('잘', 'MAG'), ('되', 'VV'), ('기', 'ETN'), ('를', 'JKO'), ('바라', 'VV'), ('ㅂ니다', 'EFN'), ('.', 'SF')]
['설치 중 오류 발생, 실행이 잘 되길 바랍니다.']

 

해결된 코드를 보아 짐작건대, Jpype 버전 호환성으로 인해 발생한 오류인것 같다.

낮은 버전으로 내리면 Jpype를 못찾는 상황이 발생하고 이를 해결하기 위해 JPype1-py3을 설치하면 Jpype은 실행되나 jvm 실행옵션(convertStrings)에서 오류가 발생한다. 

반응형