kakao / khaiii

Kakao Hangul Analyzer III
Apache License 2.0
1.4k stars 287 forks source link

khaiii.khaiii.KhaiiiExcept: resource directory not found 에러가 뜹니다. #20

Closed Kyeongpil closed 5 years ago

Kyeongpil commented 5 years ago

https://github.com/kakao/khaiii/blob/master/doc/setup.md 여기 있는 페이지처럼 설치를 하고 python에서 import 까지 잘 되었는데요,

khaiii.khaiii.KhaiiiExcept: resource directory not found: /Users/Helianthus/khaiii-master/build/package_python/khaiii/share/khaiii

이런 에러가 뜹니다.

그래서 build/package_python/khaiii 폴더에 보니 share폴더가 없더라구요 build/share 폴더를 build/package_python/khaiii에 폭사해서 넣으니 잘 동작하는 것 확인했습니다.

혹시 빌드하는 곳에서 해당 파일이 잘 복사가 안되는 것 같은데 확인해주시면 감사하겠습니다.

krikit commented 5 years ago

build/package_python/khaiii 디렉토리는 share 디렉토리가 생성되는 곳이 아닙니다. sudo pip install . 명령을 내리면 /usr/local/lib/python3.6/site-packages/khaiii 아래에 khaiii.py 모듈 및 lib, share 디렉토리를 설치하게 됩니다. (pip 설치 위치에 따라 위 대상 디렉토리는 다를 수 있습니다.)

build/package_python 디렉토리는 setup.py 파일과 설치를 위한 준비를 하는 곳입니다. 일단 sudo pip install . 명령으로 성공적으로 설치가 되면, khaiii.py 모듈과 함께 설치 위치에 lib, share 디렉토리가 복사 됩니다. (기존에 빌드된 build/lib, build/share를 복사하지는 않고, 새로 임시 디렉토리 어딘가에 라이브러리와 리소스를 빌드합니다. 그래서 빌드 시간이 좀 걸립니다.)

khaiii 모듈의 KhaiiiApi 객체는 open() 시 리소스 경로를 전달하지 않으면, 기본적으로 khaiii.py 파일이 있는 동일한 위치로부터 share/khaiii 디렉토리에 리소스가 있다고 간주하고 오픈을 시도합니다.

Kyeongpil commented 5 years ago

@krikit 답변 감사합니다. 저 같은 경우는 anaconda python 환경을 사용하고 있어서 sudo pip install .이 아니고 pip install . 을 통해서 설치를 했는데요, 그래서 그런지 site-packages/khaiii 아래에 directory가 달랐던 것 같습니다.

rumbarum commented 4 years ago

같은 문제로 헤매실 분을 위해 남깁니다. @krikit python 환경에 khaiii 설치를 하고 설치한 걸 불러올 수 없는곳(khaiii 설치 폴더)에서 불러서 그런 겁니다. 프로젝트로 가셔서 확인 하시면 잘 됩니다.

지시한 대로 프로그램을 다 깔고 나면 빨리 확인하고 싶은 마음에 폴더 이동없이 바로 파이썬을 켜서 작동여부를 확인을 하게 됩니다. 그렇게 되면 /Users/user_name/khaiii/build/package_python에서 상대경로로 리소스를 찾아오네요. 그럼 없는걸 찾는 거죠.