NameError: name 'jpype' is not defined. 'JVM is already running. Do not init twice!'

FreeZeeSun·2023년 10월 4일
0

에러일기

목록 보기
3/9


https://konlpy.org/ko/latest/api/konlpy.tag/#module-konlpy.tag._hannanum:~:text=morph%20and%20tag.-,Okt%20Class,-%C2%B6



우선, 환경 변수에서 기존에 내가 사용하던 jdk11 버전에서 konlpy를 사용하기 위해 호환되는 유일한 버전 jdk8 버전으로 경로를 변경해주었다.
(참고 블로그 : https://byeon-sg.tistory.com/entry/%EC%9E%90%EC%97%B0%EC%96%B4-%EC%B2%98%EB%A6%AC-konlpy-%EC%84%A4%EC%B9%98-%EC%98%A4%EB%A5%98-okt%EC%97%90%EB%9F%AC-already-loaded-in-another-classloader-SystemErro-1)


cmd 창으로 확인하니, 경로가 잘 들어간걸 확인할수 있었다.

응, 그래도 여전히 에러다.
이번에는 idle 에서 확인을 해줬다.
어머나 세상에. 없다고 한다...

이번에는 konlpy 폴더의 jvm.py 를 찾아가서..


*별표를 지워주기도 해봤다.

하하하하 ... 그래도 여전히 에러창이다...
뭔가 환경변수의 문제가 아닌것 같다.
왜냐면 오늘 오전에는 멀쩡하게 잘 돌아갔기 때문이다.

https://blog.naver.com/shino1025/221589430674
이 블로그에서 알려주는 방법으로 해보아도 안된다..

다 삭제하고,, 재 설치..

https://pythontoomuchinformation.tistory.com/451


마침내 성공.. 🥹

정리하자면,

  • python 설치 버전이 몇인지
  • 내 컴퓨터 os 와 bit 는 몇인지
  • JDK 1.7 이상 버전 설치 됐는지 (zulu-8.jdk에서 설치함)
    (참고 : https://povia.tistory.com/11)
  • 시스템 환경 변수 편집 > JAVA_HOME 경로 설정 잘 했는지
    (나의 경우 C:\Program Files\Zulu\zulu-8\bin)
  • 시스템 환경 변수 편집 > path 설정 잘 했는지
    (나의 경우 C:\Program Files\Zulu\zulu-8\bin)
  • 시스템 환경 변수 편집 > JRE_HOME 설정 잘 했는지
    (나의 경우 C:\Program Files\Zulu\zulu-8\jre
    근데 JRE_HOME 설정은 왜 하는건진 몰겠다,,)
  • 여기 들어가서, 내 파이썬이랑 호환되는 JPype1 잘 설치해주기.
    https://konlpy.org/ko/latest/install/#id2

    여기서 amd64 가 64bit 지원 / win32 는 32bit 지원
    cp310 이 python 3.10 버전이라는 뜻이므로,
    제일 상단 항목을 설치해주면 된다.

환장하겠다...
이번에는 jupyter notebook이 웹 브라우저에서 안열리고 VScode 에서 열린다..ㅠㅠ
https://domini21.tistory.com/23 이 블로그 말대로 해도 안된다...


하.... 도대체 또 뭐가 문제인걸까ㅠㅠㅠ
재부팅을 해봐야겠다..
재부팅을 했도 똑같았다.
최후의 수단으로, uninstall jupyter 을 했더니..
갑자기 브라우저 창이 열렸다..

그리고... 지금까지 내 곯머리를 썩힌 문제는 해결이 되었다...
그치만, 원인을 아직도 잘 모른다...
다시 또 맞닥뜨리면, 이렇게 대장정의 솔루션을 벌여야하는건 말도 안된다.
우선, JVM과 관련된 사항을 점검해봐야겠다.


원인 분석

오늘 선생님께 여쭤봤다.

Jpype 는 Python 에서 JVM 을 띄운 뒤, 서로 통신을 하는 라이브러리입니다. JVM 을 띄울 때 우리가 이용할 libraries 를 모두 입력합니다. 이를 위하여 앞서 jar 파일을 만들었습니다. 코모란은 네 개의 학습 파일을 가지고 있습니다

결국 Jpype 는 python 과 JVM을 연결해주는 통로인데, 이미 running 된 JVM 을 또 돌리려고 하니까 두번 가동하지말라는 에러코드가 뜨는거라고 한다.
1. 나는 주피터 브라우저 창을 두개 띄워놓고 동시에 가동시켰다. -> JVM 에 핸들링을 잃어버림.
2. 한번 잃어버린 핸들링은 다시 찾을 수 없음.
3. 전부 shut down 시킨 다음, 다시 돌리면 된다고 한다.

profile
개발자 지망생. 지금은 삽질의 연속, 하지만 언젠가는 삽질이 아닐 것이기에!

0개의 댓글