파이썬을 이용해 코딩을 진행하다보면 여러 오류(error) 상황을 만나게 됩니다. 이런 경우, 다양한 방법으로 해결책을 찾아볼 수 있는데요. 주로 구글 검색을 이용합니다. 최근에는 GPT가 도움이 되기도 합니다. 이번에는 pyinstaller 라이브러리를 사용하는 과정에서 발생한 오류 입니다.
PyInstaller cannot check for assembly dependencies. Please install pywin32-ctypes. pip install pywin32-ctypes
오류 메시지는 간단합니다. pywin32-ctpyes가 없으니 설치하라는 것입니다. pip install을 이용하면 된다고 친절하게 알려줍니다. 이 정도면 오류라고 할 수도 없습니다.
pip install pywin32-ctypes를 실행합니다. 당연하게도 콘솔에서는 이미 라이브러리가 설치되어 있다고 전합니다. 다시, pyinstaller를 실행합니다. 위에서 보여준 오류가 또 발생합니다. 지금 부터 고민이 시작됩니다.
구글 검색을 통해 해결책 찾아보기
이렇게 오류를 만나면 메시지를 잘 가지고 있는 것이 중요합니다. 그래야 비슷한 상황을 해결한 사례를 찾을 수 있기 때문이죠. 다만, 영어로 검색을 해야합니다. 당연히, 영문 사이트가 나오죠. 웹브라우저의 페이지 번역을 적절하게 사용하면서 해결 방법을 찾아보면 됩니다.
구글 검색 순서대로 살펴보기
우선 해당 오류 메시지를 통해 확인할 수 있는 가장 먼저 등장하는 검색 결과입니다. 잘 모르니까요. 차례대로 들어가봅니다.
stackoverflow에서 제시된 해결 방법.
게시자는 파이썬 3.6.0을 사용하고 있으며, 작성한 스크립트를 exe파일로 만드는 과정에서 저와 같은 오류를 만났다고 합니다. 사용한 명령어는 다음과 같습니다.
- pyinstaller –onefile –console compiler.py
- 하나의 파일로 exe를 만들고, 실행시 콘솔창이 표시되도록 설정을 했네요.
게시글을 확인한 사람들이 제시한 해결책들은 다음과 같이 정리할 수 있습니다.
1️⃣ Python 디렉토리 > Lib > 사이트 패키지 > Pyinstaller에서 comp.py 파일을 열고 import로 고쳐주라는 것입니다. 조금 번거롭지만 비교적 간단하게 해결할 수 있다면 좋겠습니다. 개인적으로 번거로운 것을 싫어하기에 해당 방법은 최후로 남겼습니다.
2️⃣ 두번째 방법은 pip install cffi 입니다. 가장 먼저 손쉽게 접근해볼 수 있는 방법이죠. 그 후, pip install pywin32를 진행하라고 덧붙이고 있습니다.
3️⃣ 그 밖에도 여러 의견들이 있습니다. 해당 게시글 링크(여기)를 통해 확인해보시면 좋을 것 같네요.
▶ 여기까지 알고 난 후, 바로 pip install cffi를 실행합니다. 이미 설치되어 있다고 합니다. github도 살펴보기로 합니다.
github에서 제시된 해결 방법.
해당 게시자는 Windows 10에 Python 3.7을 설치한 환경이라고 합니다. 여기에도 여러 사람들이 댓글을 통해 의견을 제시하고 있습니다. 쭉 내려보다가 하나 마음에 걸리는 것을 발견합니다.
pip install --upgrade cffi
해당 라이브러리에 대한 문제점을 지적한 것은 위에서도 언급된 바 있습니다. 즉, cffi 패키지를 어떻게 하면 해결되지 않을까 생각이 들었습니다.
오류 해결
cffi 패키지에 문제가 있다면 우선 다시 설치를 진행하는 것이 좋겠죠. pip install을 이용해 설치하고, upgrade를 진행합니다. 그래도 오류가 발생하면, 삭제 후, 다시 설치를 해야겠죠.
- pip install cffi
- pip install –upgrade cffi
- pip uninstall cffi
- pip install cffi
위 순서대로 진행했습니다. 이전의 경험으로 pyinstaller를 먼저 삭제 후, 새로 설치했지만 오류는 지속되었고요. 검색 중 중복적으로 보이던 cffi 패키지를 다시 설치하는 과정에서 오류가 해결된 것으로 보입니다. 실제로 cffi는 pywin32-ctypes가 아니라 pywin32에서 사용한다고 합니다. 전문가는 아니기에 직면한 오류만 해결되면 됩니다.
마치며.
다양한 오류나 문제들은 사용자를 성장시키는 원동력이 되기는 합니다. 하지만, 해결책을 찾는데 오랜 시간이 걸린다면 지쳐서 포기할지도 모릅니다. 중요한 것은 포기하지 않고 다양한 시도를 하는 것이겠죠. 그러기 위해서는 코딩 환경을 분리해 두는 것도 도움이 될 수 있을 것 같습니다.
GPT, 구글 검색이 해결을 위한 정보를 얻기에 많은 도움이 될 수 있습니다. stackoverflow, github를 잘 찾아보는 것도 큰 도움이 되기도 합니다.