파이썬 스크립트를 ". exe" 실행파일로 변환해 주는 "pyinstaller"에 대해서 언급한 적이 있었습니다.
코딩하면 늘 혼자서만 사용하기 때문에 pyinstaller를 사용할 일이 거의 없었는데요. 최근에 쓸 일이 생겨 오랜만에 패키징을 시켜 봤더니 에러가 발생했습니다.
예전에 해봤을 때와 달라진 것이라고 한다면 파이썬 버전이 달라진 것 말고는 없는데 "LoadLibraryEx", '시스템에서 파일에 액세스..." 뭐 이런 감도 안 잡히는 에러가 나서 처음에는 상당히 당황을 했었습니다.
하지만 어딘가에는 다 답이 있겠죠. 찾아보니 이런 에러는 pyinstaller가 동작하는데 필요한 모듈? 라이브러리? 가 누락되었을 때 발생할 수 있다고 합니다.
여러 버전의 파이썬을 사용하면서 충돌이 발생할 수도 있고 의존성 문제로 패키지 버전이 달라질 수도 있기 때문에 이런 문제를 미연에 방지하고자 가상 환경(Virtualenv)을 사용한다고 합니다. 가상 환경을 사용하는 방법에 대해서도 포스팅을 했으니 관련 내용은 아래 링크에서 확인해주세요.
virtualenv 패키지를 설치하고 가상 환경에 프로그램 실행에 필요한 모든 라이브러리들을 설치했습니다.
이제는 잘 되겠지 하는 생각으로 pyinstaller로 패키징을 했습니다.
pyinstaller.exe --onefile --noconsole crawler.py
그런데 이번에는 각종 파이썬 라이브러리들이 없다는 에러가 나옵니다. "python-dev-tools" 패키지를 깔면 된다부터 해서 별의별 방법은 다 동원해 봤습니다. 여기서 전 몇 시간을 헤맸는지 기억도 안 나는데 결론은 파이썬 버전을 바꿔서 해결했습니다.
앞에서는 파이썬 3.8.10 버전을 사용했습니다. 3.8.10 버전에서는 인터넷에 나오는 각종 방법들 다 동원해 봤지만 pyinstaller가 동작하지 않았습니다. 혹시나 하는 마음에 3.8.9 버전을 설치하고 Virtualenv 설정해서 다시 처음부터 시작했습니다.
결국 파이썬 3.8.9 버전의 가상 환경에서 해결했습니다.
만약 유사한 pyinstaller를 사용하시는데 유사한 에러를 경험하신다면 먼저 지금 사용하고 계신 파이썬 버전에 대해서 Pyinstaller 이슈는 없는지 확인해보시고 virtualenv로 가상 환경 만들어서 해결해 보세요.
끝!
'Software > Python' 카테고리의 다른 글
selenium사용하지 않고 네이버쇼핑 검색결과 크롤링하기 (13) | 2021.07.09 |
---|---|
Pyinstaller로 변환한 exe 파일의 실행 경로 찾기 (6) | 2021.07.08 |
Python Virtual Environment(Virtualenv) 사용하기 (0) | 2021.06.29 |
파이썬에서 문자열을 여러줄로 표시하고 주석까지 달기 (Multiline string with comment) (0) | 2021.06.20 |
댓글