簡體   English   中英

導入錯誤:當我使用 pyInstaller 從 python 腳本制作單個 exe 時,沒有名為 win32timezone 的模塊

[英]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

  • win32timezone 是缺少的模塊。
  • 使用 -F 或 --onefile 創建一個獨立的、可再發行的 exe。
  • 如果缺少多個模塊,您可以多次使用 --hiddenimport。

參考: https : //pythonhosted.org/PyInstaller/usage.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM