2020年10月20日

Getting error when using pynput with pyinstaller(Python3.7)

問題描述 

我用Python寫了一段程式,並用pyinstaller包裝成.EXE執行檔

在python環境執行都正常,但在EXE環境執行後等幾秒鐘出現錯誤訊息後閃退

訊息中大概提到跟pynput這個函式庫有關(片段錯誤訊息如下)

  1. File "pynput\keyboard\__init__.py", line 31, in <module>
  2. File "pynput\_util\__init__.py", line 82, in backend
  3. ImportError
  4. [22744] Failed to execute script Autorebuild


程式環境

  • Python V.3.7.2
  • pynput V.1.7.1
  • pyinstaller V.4.0

解決過程

我在程式中Import 如下


我在Python環境下可以正常執行

當我將.py檔用pyinstaller包裝成.EXE,打包過程也都正常

但當我執行打包後的.EXE檔時,視窗閃退

於是我用桌面錄影把錯誤訊息截下來,如下圖


這錯誤訊息超無厘頭的阿
只知道錯誤跟pynput有關,但為什麼錯? 還真是不解

逛了一下Stackoverflow發現有人有發生跟我一樣的情況

我試著將pynput的版本退版到1.6.8(我原本版本是1.7.1)


然後再次用pyinstall打包成.EXE,過程也都順利


然後那個錯誤就這樣解決了!!!
程式可以正常執行了(YA!!! 灑花)


參考資料:

沒有留言:

張貼留言