Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AttributeError: Java package 'kr.lucypark.okt' is not valid 이슈 #401

Open
BoRa-1 opened this issue Mar 20, 2022 · 9 comments
Open

AttributeError: Java package 'kr.lucypark.okt' is not valid 이슈 #401

BoRa-1 opened this issue Mar 20, 2022 · 9 comments

Comments

@BoRa-1
Copy link

BoRa-1 commented Mar 20, 2022

안녕하세요 제목과 같은 오류가 계속해서 발생하네요.
jupyter에서 konlpy import 중이며
okt = Okt(), kkma = Kkma() 동일하게 모두 같은 valid 오류문이 출력됩니다.

(1) JDK version: 11(기존에 SE 16 버전 설치했으나 같은 오류로 konlpy readme에 나오는 최적 환경으로 변경하려 버전을 낮추었습니다..)
(2) python: python 3.8.10(마찬가지로 3.9 사용하였으나 같은 오류 발생으로 버전을 다운그레이드 하였습니다..)
(3) window에서 사용하고 있으며 CPU는 AMD Ryzen 7 5800HS 입니다
(4) jpype 버전은 1.1.2, 1.3.0 버전 둘 다 같은 오류가 납니다.

(5) pip list 결과
4.9.2\nkonlpy
0.18.1\nJPype1
로 나왔습니다.

(6) konlpy의 classpath 관련하여서 https://github.com/konlpy/konlpy/blob/master/konlpy/jvm.py#L50-L53 의 코드를 그대로 실행하였더니

javadir : [C:\Users\ASUS\0318\bbora\Lib\site-packages\konlpy\java
os.sep :
classpath: [C:\Users\ASUS\0318\bbora\Lib\site-packages\konlpy\java\open-korean-text-2.1.0.jar

위와 같은 결과가 출력됩니다.

(7) 오류문은 아래와 같습니다


AttributeError Traceback (most recent call last)
Input In [3], in <cell line: 1>()
----> 1 okt = Okt()

File c:\Users\ASUS\0318\bbora\lib\site-packages\konlpy\tag_okt.py:54, in Okt.init(self, jvmpath, max_heap_size)
51 jvm.init_jvm(jvmpath, max_heap_size)
53 oktJavaPackage = jpype.JPackage('kr.lucypark.okt')
---> 54 OktInterfaceJavaClass = oktJavaPackage.OktInterface
55 self.jki = OktInterfaceJavaClass()
56 self.tagset = utils.read_json('%s/data/tagset/twitter.json' % utils.installpath)

AttributeError: Java package 'kr.lucypark.okt' is not valid

정말 모든 경우의 수를 다 시도해본것 같은데 해결되지 않아서 너무 막막합니다..

@hexists
Copy link
Contributor

hexists commented Mar 20, 2022

@BoRa-1
안녕하세요~

문제를 같이 확인해보면 좋을 것 같습니다.

  1. JAVA_HOME은 잘 설졍됐나요?

  2. classpath에 해당 파일이 존재하나요?
    classpath: [C:\Users\ASUS\0318\bbora\Lib\site-packages\konlpy\java\open-korean-text-2.1.0.jar

  3. 다른 형태소 분석기 실행도 안되나요? hannanum 등

@combacsa
Copy link
Contributor

@BoRa-1 님, 그리고 konlpy 버전이 0.6.0 이신 것도 확인이 되실까요?

@BoRa-1
Copy link
Author

BoRa-1 commented Mar 21, 2022

  1. JAVA_HOME은 C:\Program Files\Java\jdk-11.0.14\bin\server 와 같이 설정하였고,
  2. class path에 해당 파일(open-korean-text-2.1.0.jar)존재합니다.
  3. hannanum 도 마찬가지로 안됩니다..
    3-1 . Kkma와 hannanum의 오류 메세지는 아래와 같습니다.

AttributeError Traceback (most recent call last)
Input In [12], in <cell line: 1>()
----> 1 kkma = Kkma()

File c:\Users\ASUS\0318\bbora\lib\site-packages\konlpy\tag_kkma.py:47, in Kkma.init(self, jvmpath, max_heap_size)
44 jvm.init_jvm(jvmpath, max_heap_size)
46 kkmaJavaPackage = jpype.JPackage('kr.lucypark.kkma')
---> 47 KkmaInterfaceJavaClass = kkmaJavaPackage.KkmaInterface
48 self.jki = KkmaInterfaceJavaClass() # Java instance
49 self.tagset = utils.read_json('%s/data/tagset/kkma.json' % utils.installpath)

AttributeError: Java package 'kr.lucypark.kkma' is not valid


AttributeError Traceback (most recent call last)
Input In [9], in <cell line: 1>()
----> 1 hannanum = Hannanum()

File c:\Users\ASUS\0318\bbora\lib\site-packages\konlpy\tag_hannanum.py:72, in Hannanum.init(self, jvmpath, max_heap_size)
69 jvm.init_jvm(jvmpath, max_heap_size)
71 jhannanumJavaPackage = jpype.JPackage('kr.lucypark.jhannanum.comm')
---> 72 HannanumInterfaceJavaClass = jhannanumJavaPackage.HannanumInterface
73 self.jhi = HannanumInterfaceJavaClass() # Java instance
74 self.tagset = utils.read_json('%s/data/tagset/hannanum.json' % utils.installpath)

AttributeError: Java package 'kr.lucypark.jhannanum.comm' is not valid

  1. pip list 결과 konply 버전 0.6.0입니다! ㅠㅠ 해결방법이 없을까요...

@hexists
Copy link
Contributor

hexists commented Mar 21, 2022

@BoRa-1

JAVA_HOME과 classpath 경로에 파일이 있는지 확인 감사합니다.

문제를 해결하려면 거꾸로 확인해보면서 잘못 설정된 값이 없는지 확인해봐야 할 것 같습니다.
처음 질문에 있던 okt를 기준으로 확인 과정을 적어보겠습니다.

AttributeError Traceback (most recent call last)
Input In [3], in <cell line: 1>()
----> 1 okt = Okt()

File c:\Users\ASUS\0318\bbora\lib\site-packages\konlpy\tag_okt.py:54, in Okt.init(self, jvmpath, max_heap_size)
51 jvm.init_jvm(jvmpath, max_heap_size)
53 oktJavaPackage = jpype.JPackage('kr.lucypark.okt')
---> 54 OktInterfaceJavaClass = oktJavaPackage.OktInterface
55 self.jki = OktInterfaceJavaClass()
56 self.tagset = utils.read_json('%s/data/tagset/twitter.json' % utils.installpath)

AttributeError: Java package 'kr.lucypark.okt' is not valid
  1. 53행의 oktJavaPackage이 잘 설정됐는지 확인 필요
    잘 설정됐다면 kr.lucypark.okt가 설정되어 있습니다.
53행 뒤에 아래 내용 추가 후 다시 실행
print('oktJavaPackage: ', oktJavaPackage)
  1. jvm 잘 설정되어 있는지 확인 필요

c:\Users\ASUS\0318\bbora\lib\site-packages\konlpy\jvm.py 파일을 열어 55행 뒤에서 아래 출력 추가

55 jvmpath = jvmpath or jpype.getDefaultJVMPath()
print('jvmpath: ', jvmpath)

이렇게 확인된 경로에 jvm.dll이 잘 있는지 확인이 필요합니다.

@BoRa-1
konlpy가 jpype를 이용해서 java로 작성된 프로그램을 연결하고 있는데, 설치 환경에 영향을 많이 받습니다;
테스트 성공한 버전 기록해놓습니다.

제가 실험한 환경은 jdk1.8, python 3.8, jpype 1.3.0 입니다.

이렇게 한번 테스트 해보고, 모두 제대로 설정됐다면 다시 문제를 찾아봐야 할 것 같습니다.
감사합니다!

@BoRa-1
Copy link
Author

BoRa-1 commented Mar 22, 2022

@hexists 답변 정말 감사합니다.
해주신 모든 사항 1,2 실행하였으나 모두 잘 설정되어있는것을 확인하였고
실험하셨던 환경과 동일하게 버전 맞추어 다시 진행하였으나 여전히 이슈가 발생합니다...
번거로이 죄송합니다. 혹시 나중에 조금이라도 실마리를 찾으신다면 어느 시도라도 좋으니 바로 실행해보겠습니다.
멘션해주세요!

@hexists
Copy link
Contributor

hexists commented Mar 22, 2022

@BoRa-1
그렇군요...
혹시 위에 내용들을 확인한 곳이 jupyter 맞을까요?
마지막으로 확인 부탁드립니다!

어떤 이유로 안됐는지 그리고 해결 방법을 찾았으면 했는데, 쉽지 않네요^^;

@BoRa-1
Copy link
Author

BoRa-1 commented Mar 22, 2022

@hexists 넵! 비주얼스튜디오, jupyter에서 가상환경 만들어 실행하였습니다!

@hexists
Copy link
Contributor

hexists commented Mar 22, 2022

@BoRa-1
확인 감사합니다.
혹시나 konlpy 실행이 안된 곳과 환경변수 확인한 곳이 다른지 확인하고 싶었습니다.
저도 비슷한 환경에서 테스트 해봐야겠네요. 감사합니다.

@CherinaS
Copy link

CherinaS commented Mar 6, 2023

저도 같은 에러코드가 나와 해결을 하지못하고 있습니다ㅜㅜ 혹시 해결하셨을까요??

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants