10

使用pyinstaller將manage.py打包後會產生manage.exe可執行檔,在執行manage.exe runserver --noreload指令時發生ModuleNotFoundError: No module named ‘XXX’. 錯誤

環境

  • Windows10 x64 20H2
  • Python 3.9.7
  • Django 3.2.7
  • pyinstaller 4.7

解決方法

先前使用pyinstaller -F .\manage.py直接打包產生exe檔案,但是因為錯誤訊息提示缺少模組,其中一個解決方法是將錯誤訊息顯示的模組手動加入到hiddenimports中

首先使用pyi-makespec -F .\manage.py指令產生spec檔,在檔案裡的hiddenimports中加入錯誤訊息所提示的模組名稱 20

30

接著使用pyinstaller -F .\manage.spec指令將spec檔案打包成exe檔,再次使用manage.exe runserver --noreload指令執行顯示已可正常運作

40