kakao / khaiii

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

v3.0 khaiii.khaiii.KhaiiiExcept: fail to find library: libkhaiii.so 에러 발생. #54

Closed daewonyoon closed 5 years ago

daewonyoon commented 5 years ago

ubuntu (xubuntu) 18 환경에서, 설치매뉴얼을 따라 테스트하였습니다.

파이썬 예제를 실행하면, libkhaiii.so 를 찾지 못하는 에러가 발생합니다.

(vmecab) daewon@daewon-xubi64:~/github/kakao/khaiii/build/package_python$ python
Python 3.6.7 (default, Oct 22 2018, 11:32:17) 
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from khaiii import KhaiiiApi
>>> api = KhaiiiApi()
ERROR:root:current working directory: /home/daewon/github/kakao/khaiii/build/package_python
ERROR:root:library directory: /home/daewon/github/kakao/khaiii/build/package_python/khaiii/lib
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/daewon/github/kakao/khaiii/build/package_python/khaiii/khaiii.py", line 171, in __init__
    raise KhaiiiExcept('fail to find library: {}'.format(lib_name))
khaiii.khaiii.KhaiiiExcept: fail to find library: libkhaiii.so
>>> exit()

package_python/khaiii/lib 폴더가 없습니다. build 디렉토리에 있는 lib 폴더를 위 에러메시지의 위치로 복사하면 에러가 없어집니다.


(vmecab) daewon@daewon-xubi64:~/github/kakao/khaiii/build$ ll
합계 120
drwxr-xr-x 11 daewon daewon  4096  2월 21 16:31 ./
drwxr-xr-x 12 daewon daewon  4096  2월 21 15:25 ../
-rw-r--r--  1 daewon daewon 17245  2월 21 15:54 CMakeCache.txt
drwxr-xr-x 11 daewon daewon  4096  2월 21 16:30 CMakeFiles/
-rw-r--r--  1 daewon daewon  3582  2월 21 15:54 CPackConfig.cmake
-rw-r--r--  1 daewon daewon  3861  2월 21 15:54 CPackSourceConfig.cmake
-rw-r--r--  1 daewon daewon   422  2월 21 15:54 CTestTestfile.cmake
-rw-r--r--  1 daewon daewon 35924  2월 21 15:54 Makefile
drwxr-xr-x  3 daewon daewon  4096  2월 21 16:30 Testing/
drwxr-xr-x  3 daewon daewon  4096  2월 21 15:26 _3rdParty/
drwxr-xr-x  3 daewon daewon  4096  2월 21 16:31 _CPack_Packages/
drwxr-xr-x  2 daewon daewon  4096  2월 21 16:14 bin/
-rw-r--r--  1 daewon daewon  3909  2월 21 15:54 cmake_install.cmake
-rw-r--r--  1 root   root     802  2월 21 16:30 install_manifest.txt
drwxr-xr-x  2 daewon daewon  4096  2월 21 16:11 lib/
drwxr-xr-x  3 daewon daewon  4096  2월 21 16:31 package_python/
drwxr-xr-x  3 daewon daewon  4096  2월 21 16:23 share/
drwxr-xr-x  2 daewon daewon  4096  2월 21 16:22 test/
(vmecab) daewon@daewon-xubi64:~/github/kakao/khaiii/build$ cp -r lib package_python/khaiii
(vmecab) daewon@daewon-xubi64:~/github/kakao/khaiii/build$ python 
Python 3.6.7 (default, Oct 22 2018, 11:32:17) 
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from khaiii import KhaiiiApi
>>> api = KhaiiiApi()
>>> 

설치시 특이사항으로는 (관련이 있는지는 모르겠지만), 시스템 기본 파이썬에 설치한 것이 아니고, venv 로 생성한 가상환경에 설치한 것입니다. 설치메뉴얼에선 pip install cmake 라고 나와 있었지만, sudo apt-get install cmake 로 cmake 를 설치하였습니다. 오늘 (19년 2월 21일) git clone 으로 받은 소스로 테스트하였습니다.

krikit commented 5 years ago

build/package_python 디렉터리에서 pip install .으로 설치하고 나면 package_python 디렉터리를 벗어나서 테스트 해야 합니다. 안그러면 package_python/khaiii 아래에 있는 khaiii.py을 사용하게 되어, khaiii.py 파일과 동일한 위치에서 libshare를 찾게되어 위와같은 현상이 발생한 것일 것으로 생각합니다.

daewonyoon commented 5 years ago

build/package_python 디렉터리에서 pip install .으로 설치하고 나면 package_python 디렉터리를 벗어나서 테스트 해야 합니다. 안그러면 package_python/khaiii 아래에 있는 khaiii.py을 사용하게 되어, khaiii.py 파일과 동일한 위치에서 libshare를 찾게되어 위와같은 현상이 발생한 것일 것으로 생각합니다.

앗. 그렇군요.