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

PyKOMORAN의 core가 실행되지 않는 문제 #48

Open
shin285 opened this issue May 9, 2019 · 7 comments
Open

PyKOMORAN의 core가 실행되지 않는 문제 #48

shin285 opened this issue May 9, 2019 · 7 comments
Labels
need feedback Need feedback

Comments

@shin285
Copy link
Member

shin285 commented May 9, 2019

문제 설명

PyKomoran에 있는 core.py의 main이 실행되지 않습니다.

재현 경로

core.py를 run 시키면 발생

기대 상황

komoran의 분석 결과들이 출력됩니다.

환경 정보

어떤 환경에서 이 문제가 발생하였나요?

  • OS 종류 / 버전:윈도우10
  • PyKomoran 버전: commit 9d36451
  • Python 버전:3.6

추가 정보

Traceback (most recent call last):
  File "D:/python/PyKOMORAN/python/PyKomoran/core.py", line 293, in <module>
    komoran = Komoran("EXP")
  File "D:/python/PyKOMORAN/python/PyKomoran/core.py", line 56, in __init__
    raise KomoranError("Komoran is NOT initialized!")
__main__.KomoranError: Komoran is NOT initialized!
@9bow
Copy link
Member

9bow commented May 9, 2019

core.py 내의 main은 개발 중 만들어두었던 코드로 삭제해야 합니다.
(이와 별개로) 위 문제는 Java-side에서의 KOMORAN 객체가 초기화되지 않아서 발생하는 문제인데요,
위와 같은 에러가 발생할 때 Py4J JVM이 실행 중인가요? 또는 어떤 경로에서 어떻게 실행하셨는지 알려주시면 원인을 찾는데 도움이 될 것 같습니다.

@shin285
Copy link
Member Author

shin285 commented May 12, 2019

core.py만 실행시켰습니다. Py4J JVM을 따로 실행시키지 않았습니다.

@9bow
Copy link
Member

9bow commented May 13, 2019

네, 해당 에러는 (위에서 언급한 것처럼) Java-side의 KOMORAN 객체가 초기화되지 않아서 발생하는 것인데요,
core.py는 별도로 JVM을 실행시키지 않아도 자동으로 jvm.py를 불러 JVM을 실행하도록 되어 있기 때문에 Py4J JVM이 실행 중인지를 문의드렸던 것입니다.
위와 같은 에러가 발생할 때 Py4J JVM이 실행 중인가요? 또는 어떤 경로에서 어떻게 실행하셨는지를 다시 한 번 확인해주실 수 있으실까요?

@9bow 9bow added the need feedback Need feedback label May 13, 2019
@shin285
Copy link
Member Author

shin285 commented May 16, 2019

PyCharam에서 "python/PyKomoran/core.py"의 main을 실행시켰습니다. 콘솔에서 실행시켜도 같은 에러가 발생합니다. Py4J에 대해서 따로 실행시키지 않았습니다. 확인부탁드립니다.

@zidane100e
Copy link

zidane100e commented Jun 21, 2019

혹시 komoran 이 multiprocess 에서는 어떻게 작동해야 하는지 알 수 있을까요?

저는 multiprocess 에서 위와 동일한 에러가 발생합니다
komoran 을 어디에서 생성하느냐에 따라
py4j.protocol.Py4JError: kr.co.shineware.nlp.pykomoran.KomoranEntryPoint.co does not exist in the JVM 가 생기기도 하고, 위와 같은 에러가 생기기도 합니다.

process 를 하나로 하면 정상 작동합니다.
process 대신 thread 를 이용해서 komoran instance 를 만들고 thread로 넘겨주면 위의 에러 없이 작동되네요

@9bow
Copy link
Member

9bow commented Jun 23, 2019

안녕하세요, @zidane100e
결론부터 말씀드리면 Multi Process / Thread 지원을 고민하다가 대대적인 구조 개선이 필요함을 인식하고 고민 중(?)인 상태입니다.

위에 알려주신 Py4J 에러는 JVM이 초기화가 되지 않아서 발생하는 문제로 보입니다. 다만, 위 에러를 피하기 위해 JVM 초기화를 하는 경우 여러 개의 PyKomoran Process는 곧 여러 개의 JVM Instance를 생성하게 되어 비효율적입니다.
하나의 JVM 내에서 Multi Thread로 동작하는 식으로 코드를 개선해야 하는데, 현재 Komoran - KomoranEntryPoint(Wrapper)에서는 이와 같은 구조가 담겨있지 않은 상태입니다.

번거로우시겠지만 우선은 Java 기반의 KOMORAN을 사용하고 계셔 주시면 빠른 시간 내에 해결책을 찾아보도록 하겠습니다. (_ _)

@zidane100e
Copy link

zidane100e commented Jun 24, 2019

자세히 설명해 주셔서 감사드립니다.

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

No branches or pull requests

3 participants