[삽질일기] 오늘의 교훈: 에러 로그는 ....

in kr-dev •  7 years ago  (edited)

일에 집중도 잘 안되고 딴짓 할 것 없나 찾던 차에 @tradingideas 님의 글을 발견했습니다.

오~ 요거 재밌겠는데, 하고 바로 검색에 들어갔죠.
과연 비슷한 에러로 고민하는 사람들이 꽤 있더군요. 그런데 왠걸~ 십여 개의 문의글을 봤는데 최근 2일전 답글까지도 해결 방법이 없는 겁니다.!

하지만 전문 입개발자로서의 자존심이 있어 바로 파일을 받고 라이브러리를 설치해서 실행해 봤습니다.

Traceback (most recent call last):
  File "post_email.py", line 4, in <module>
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "/usr/local/lib/python3.6/site-packages/PyInstaller/loader/pyimod03_importers.py", line 631, in exec_module
    exec(bytecode, module.__dict__)
  File "steem/__init__.py", line 2, in <module>
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "/usr/local/lib/python3.6/site-packages/PyInstaller/loader/pyimod03_importers.py", line 631, in exec_module

오 과연 같은 에러가 나는 군요. 척보기에도 왠지 라이브러리가 포함이 되지 않아서 나는 문제인것 같아 pyinstaller 메뉴얼을 읽기 시작했습니다.
음. 그런데 메뉴얼을 읽고 pure python library 가 저장되는 build/post_email/out00-PYZ.pyz 와 그 명세파일인 build/post_email/out00-PYZ.toc 를 열어보니 steem 라이브러리가 모두 들어 있네요?

역시 사람들이 해결 못한 이유가 있나보다하고 "pyinstaller 깃헙이슈에서도 해결 못하고 있더군요. 기다리는 수 밖에 없을 것 같습니다." 라고 나약한 답글을 달려는 순간.

바로 그순간!

번개처럼 뇌리를 치는 소리가 있었습니다.

로그는 끝까지 다 읽어 봤니?

맞습니다. 대부분의 개발자를 삽질로 이끄는 실수 "로그 끝까지 안보기"를 제가 저지른 거죠.
로그를 끝까지 읽어보니, 과연

FileNotFoundError: [Errno 2] No such file or directory: '...검열삭제.../dist/post_email/langdetect/utils/messages.properties'

라이브러리 문제가 아니라 pyinstaller analyizer 가 import 되지 않고 쓰이는 파일을 인식하지 못 한거죠.
pyinstaller 메뉴얼에 따르면 이럴 땐 파일을 따로 추가해 주면 됩니다.
spec파일을 수정해도 되지만 보다 간단하게

pyinstaller --add-data /usr/local/lib/python3.6/site-packages/langdetect/utils:langdetect/utils -F post_email.py

요렇게 해주면 깔끔하게 실행됩니다.

오늘의 삽질이 준 교훈은?

에러 로그는 끝까지 보자

사실은 중간에 이런 저런 삽질을 더해서 한시간은 족히 삽질로 보냈습니다.
너무 창피해서 적기도 힘든 그런 삽질을....
그것 까지 포함하면

오늘의 삽질이 준 교훈은?

에러 로그는 끝까지 자세히 보자
Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!