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

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

반응형
COMMENT