1. 程式人生 > 程式設計 >完美解決pyinstaller打包報錯找不到依賴pypiwin32或pywin32-ctypes的錯誤

完美解決pyinstaller打包報錯找不到依賴pypiwin32或pywin32-ctypes的錯誤

報錯資訊

最近閒來無事,用python的tkinter庫開發了一款帶日程提醒的萬年曆桌面程式。在程式開發結束開始打包時,卻發現一直報錯

PyInstaller cannot check for assembly dependencies.
Please install PyWin32 or pywin32-ctypes.
pip install pypiwin32

但是執行pip install pypiwin32時卻提示兩個庫都已經安裝過了

可是當再執行打包指令碼時就是死活無法打包,就是提示缺少上面兩個依賴庫。

各種度娘發現都沒有遇到類似奇葩情況的。

於是決定自行解決,首先根據錯誤關鍵詞到pyinstaller的原始碼中去檢索報錯位置。

最終發現是因為導包問題引起的,兩個依賴庫確實已經安裝只是匯入方式不同導致報錯。

解決方案

在python安裝路徑下找到Lib/site-packages/Pyinstaller目錄下有個compat.py檔案定位到212行

原始碼如下:

if is_win:
  try:
    from win32ctypes.pywin32 import pywintypes # noqa: F401
    from win32ctypes.pywin32 import win32api
  except ImportError:
    xxxx
    xxxx

做如下修改:將兩個from改為import

if is_win:
  try:
    # from win32ctypes.pywin32 import pywintypes # noqa: F401
    # from win32ctypes.pywin32 import win32api
    import pywintypes
    import win32api
  except ImportError:
    xxxx
    xxxx

然後再重新執行打包指令碼,打包成功

到此這篇關於完美解決pyinstaller打包報錯找不到依賴pypiwin32或pywin32-ctypes的錯誤的文章就介紹到這了,更多相關pyinstaller打包報錯找不到pypiwin32內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!