[英]ImportError: No module named win32timezone when i make a singleone exe from a python script with pyInstaller
我有一個腳本,它在py
文件時工作,但是當我使用 pyInstaller 從該腳本制作一個 exe 文件時,我會收到一個錯誤: ImportError: No module named win32timezone
。
我在腳本中導入:
import win32serviceutil
import win32service
import win32event
和其他一些模塊,如subprocess, os, time
但我認為 3 是問題所在。
有誰知道出了什么問題? 謝謝!
我認為您需要遵循 Pyinstaller 手冊的這一部分:
https://pythonhosted.org/PyInstaller/#id67
列出隱藏的導入
如果 Analysis 認為它已找到所有導入,但應用程序失敗並出現導入錯誤,則問題是隱藏導入; 也就是說,分析階段不可見的導入。
當代碼使用import或者 exec 或 eval 時,可能會發生隱藏的導入。 當擴展模塊使用 Python/C API 進行導入時,也可能發生隱藏導入。 發生這種情況時,Analysis 無法檢測到任何內容。 不會有警告,只有運行時的 ImportError。
要找到這些隱藏的導入,請使用 -v 標志(上面的獲取 Python 的詳細導入)構建應用程序並運行它。
一旦知道需要哪些模塊,就可以使用--hidden-import= 命令選項、編輯規范文件或使用鈎子文件將所需模塊添加到包中(請參閱下面的了解 PyInstaller 鈎子)。
-v 標志不再有效(現在顯示版本)。
首先,找出缺少哪個模塊。 您可以通過 PowerShell/cmd 執行 exe 來完成此操作。 例如,如果您的文件是“project.exe”,請在其目錄中打開 PowerShell 窗口並使用命令: .\\project.exe
。
使用它來構建 exe: pyinstaller --hiddenimport win32timezone -F a.py
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.