본문 바로가기
Dev/Python

Pyinstaller로 작성한 실행파일 실행 시, 에러 창과 함께 AutoItX 에러가 발생하는 경우

by E.Clone 2023. 12. 30.

위와 같은 Unhandled exception in script 에러창이 팝업되며 이하 전문은 아래와 같다.

Traceback (most recent call last):
  File "buff_alarm_tray.py", line 27, in <module>
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "PyInstaller\loader\pyimod02_importers.py", line 419, in exec_module
  File "autoit\__init__.py", line 6, in <module>
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "PyInstaller\loader\pyimod02_importers.py", line 419, in exec_module
  File "autoit\autoit.py", line 26, in <module>
OSError: Cannot load AutoItX from path: C:\Users\happy\AppData\Local\Temp\_MEI493962\autoit\lib\AutoItX3_x64.dll

즉 해당 경로에서 AutoItX3_x64.dll 파일을 찾을 수 없다는 내용.

 

이 경우, pyinstaller를 실행할 때, --add-data 옵션으로 경로를 직접 지정해 줄 수 있다.

본인의 경우 해당 라이브러리 경로에 AutoItX3_x64.dll 파일이 위치했다.

(happy는 사용자 이름이다)

C:\Users\happy\AppData\Local\Programs\Python\Python39\Lib\site-packages\autoit\lib\

아래와 같이 수정하여 pyinstaller 로 다시 실행파일을 만들어준다.

# 수정 전
pyinstaller --onefile --icon='./lala_data/exeIcon.ico' .\buff_alarm_tray.py

# 수정 후
pyinstaller --onefile --add-data "C:\Users\happy\AppData\Local\Programs\Python\Python39\Lib\site-packages\autoit\lib\AutoItX3_x64.dll;autoit\lib" --icon='./lala_data/exeIcon.ico' .\buff_alarm_tray.py

새로 만들어진 실행파일은 처음과 같은 에러가 발생하지 않는다.

반응형