Docker 내의 Anaconda 환경에서 설치가 되지 않고 있습니다.
CODEJIN opened this issue · 5 comments
Docker 안에서 conda를 이용하여 가상환경을 구축하여 사용하고 있습니다만, 설치가 되지 않는 것을 확인하였습니다.
메시지를 추적한 결과
building '_mecab' extension
error: [Errno 2] No such file or directory: '/opt/conda/bin/mecab-config': '/opt/conda/bin/mecab-config'
error
ERROR: Failed building wheel for python-mecab-ko
부터 오류가 발생하는 것으로 보입니다. 해결 방안을 알려주신다면 감사드리겠습니다.
Ubuntu 20.04에서도 동일한 에러가 발생하고 있습니다 - mecab-config
를 못 찾네요. Ubuntu 뿐만 아니라 AWS EC2 Instance에서도 동일한 문제가 발생하는 것으로 보아 Linux 환경 전체에서 문제가 발생하고 있는 듯 합니다.
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.7
creating build/lib.linux-x86_64-3.7/mecab
copying mecab/__init__.py -> build/lib.linux-x86_64-3.7/mecab
copying mecab/mecab.py -> build/lib.linux-x86_64-3.7/mecab
running build_ext
creating tmp
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fdebug-prefix-map=/build/python3.7-7jazGd/python3.7-3.7.11=. -fstack-protector-strong -Wformat -Werror=format-security -g -fdebug-prefix-map=/build/python3.7-7jazGd/python3.7-3.7.11=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/djlee/workspace/python/python-mecab-ko/.venv/include -I/usr/include/python3.7m -c /tmp/tmpmegt_jy_.cpp -o tmp/tmpmegt_jy_.o -std=c++14
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fdebug-prefix-map=/build/python3.7-7jazGd/python3.7-3.7.11=. -fstack-protector-strong -Wformat -Werror=format-security -g -fdebug-prefix-map=/build/python3.7-7jazGd/python3.7-3.7.11=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/djlee/workspace/python/python-mecab-ko/.venv/include -I/usr/include/python3.7m -c /tmp/tmpsjm01nhn.cpp -o tmp/tmpsjm01nhn.o -fvisibility=hidden
building '_mecab' extension
**error: [Errno 2] No such file or directory: '/home/djlee/workspace/python/python-mecab-ko/.venv/bin/mecab-config': '/home/djlee/workspace/python/python-mecab-ko/.venv/bin/mecab-config'**
Building wheel for python-mecab-ko (setup.py) ... error
ERROR: Failed building wheel for python-mecab-ko
코드를 열어 본 결과, commit 4fa89bc
에서 추가된 virtualenv 관련 기능이 Linux 환경에서 제대로 동작하지 않고 있는 것 같습니다. 아래 부분인데요, build_ext 단계에서 {virtualenv}/bin 아래 mecab-config
바이너리가 생성되지 않아서 다음 단계인 '_mecab' extension 빌드 단계에서 에러가 발생하는 듯 합니다. (작업자 분께서 OSX에서 작업+테스트 하신 것 같은데요, 맞는지요?)
mecab_config_path = os.path.join(sys.prefix, 'bin', 'mecab-config')
반면 1.0.9에서는 문제 없이 동작하네요. 일단은 저도 1.0.9를 사용중입니다만 어서 패치되었으면 합니다.
Ubuntu 20.04에서도 동일한 에러가 발생하고 있습니다 -
mecab-config
를 못 찾네요. Ubuntu 뿐만 아니라 AWS EC2 Instance에서도 동일한 문제가 발생하는 것으로 보아 Linux 환경 전체에서 문제가 발생하고 있는 듯 합니다.running bdist_wheel running build running build_py creating build creating build/lib.linux-x86_64-3.7 creating build/lib.linux-x86_64-3.7/mecab copying mecab/__init__.py -> build/lib.linux-x86_64-3.7/mecab copying mecab/mecab.py -> build/lib.linux-x86_64-3.7/mecab running build_ext creating tmp x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fdebug-prefix-map=/build/python3.7-7jazGd/python3.7-3.7.11=. -fstack-protector-strong -Wformat -Werror=format-security -g -fdebug-prefix-map=/build/python3.7-7jazGd/python3.7-3.7.11=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/djlee/workspace/python/python-mecab-ko/.venv/include -I/usr/include/python3.7m -c /tmp/tmpmegt_jy_.cpp -o tmp/tmpmegt_jy_.o -std=c++14 x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fdebug-prefix-map=/build/python3.7-7jazGd/python3.7-3.7.11=. -fstack-protector-strong -Wformat -Werror=format-security -g -fdebug-prefix-map=/build/python3.7-7jazGd/python3.7-3.7.11=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/djlee/workspace/python/python-mecab-ko/.venv/include -I/usr/include/python3.7m -c /tmp/tmpsjm01nhn.cpp -o tmp/tmpsjm01nhn.o -fvisibility=hidden building '_mecab' extension **error: [Errno 2] No such file or directory: '/home/djlee/workspace/python/python-mecab-ko/.venv/bin/mecab-config': '/home/djlee/workspace/python/python-mecab-ko/.venv/bin/mecab-config'** Building wheel for python-mecab-ko (setup.py) ... error ERROR: Failed building wheel for python-mecab-ko
코드를 열어 본 결과, commit
4fa89bc
에서 추가된 virtualenv 관련 기능이 Linux 환경에서 제대로 동작하지 않고 있는 것 같습니다. 아래 부분인데요, build_ext 단계에서 {virtualenv}/bin 아래mecab-config
바이너리가 생성되지 않아서 다음 단계인 '_mecab' extension 빌드 단계에서 에러가 발생하는 듯 합니다. (작업자 분께서 OSX에서 작업+테스트 하신 것 같은데요, 맞는지요?)mecab_config_path = os.path.join(sys.prefix, 'bin', 'mecab-config')
반면 1.0.9에서는 문제 없이 동작하네요. 일단은 저도 1.0.9를 사용중입니다만 어서 패치되었으면 합니다.
최근에 해당 부분이 문제가 되는 것을 확인을 했습니다.
원래는 원작자분이, mecab이 이미 시스템에 설치되어있으면 시스템의 것을 이용하고
시스템에 mecab이 설치되지 않으면 소스를 받아서 빌드하도록 하셨던 것일텐데,
해당 패치를 할 당시에는 후자의 경우만 고려해서 패치하다보니 그렇게 되었습니다.
안녕하세요!
@woowahan-jaehoon 님이 보내주신 Pull Request 반영하여 PyPI에 업로드 해놓도록 하겠습니다.
해당 버전으로 확인 부탁드리겠습니다!
빌드 문제는 해결되었는데요, 이번엔 AssertionError
가 발생하네요.
>>> import mecab
>>> m = mecab.MeCab()
>>> m.parse('학생부종합전형으로는 수시모집 선발인원의 약 58%인 1173명을 선발한다.')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/djlee/workspace/python/mecab-ko-dic/.venv/lib/python3.7/site-packages/mecab/mecab.py", line 62, in parse
for node in lattice
File "/home/djlee/workspace/python/mecab-ko-dic/.venv/lib/python3.7/site-packages/mecab/mecab.py", line 62, in <listcomp>
for node in lattice
File "/home/djlee/workspace/python/mecab-ko-dic/.venv/lib/python3.7/site-packages/mecab/mecab.py", line 33, in _extract_feature
assert len(values) == 8
AssertionError
빌드 문제는 해결되었는데요, 이번엔
AssertionError
가 발생하네요.>>> import mecab >>> m = mecab.MeCab() >>> m.parse('학생부종합전형으로는 수시모집 선발인원의 약 58%인 1173명을 선발한다.') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/djlee/workspace/python/mecab-ko-dic/.venv/lib/python3.7/site-packages/mecab/mecab.py", line 62, in parse for node in lattice File "/home/djlee/workspace/python/mecab-ko-dic/.venv/lib/python3.7/site-packages/mecab/mecab.py", line 62, in <listcomp> for node in lattice File "/home/djlee/workspace/python/mecab-ko-dic/.venv/lib/python3.7/site-packages/mecab/mecab.py", line 33, in _extract_feature assert len(values) == 8 AssertionError
이 이슈와는 분리하는 것이 좋을 것 같습니다.
관련해서는 #7 PR 올라와있긴 했습니다.