Vla*_*ZzZ 4 python pyinstaller
我有一个脚本,当它是一个py文件,但当我使用pyInstaller从该脚本生成一个单独的exe文件时,我将收到一个错误:ImportError: No module named win32timezone.
我在脚本中导入:
import win32serviceutil
import win32service
import win32event
Run Code Online (Sandbox Code Playgroud)
和其他一些模块,subprocess, os, time但我认为3是问题.
谁知道出了什么问题?谢谢!
小智 9
-v 标志不再有效(现在显示版本)。
首先,找出缺少哪个模块。您可以通过 PowerShell/cmd 执行 exe 来完成此操作。例如,如果您的文件是“project.exe”,请在其目录中打开一个 PowerShell 窗口并使用命令:.\project.exe.
使用它来构建 exe:
pyinstaller --hiddenimport win32timezone -F a.py
参考:https : //pythonhosted.org/PyInstaller/usage.html
我认为您需要遵循Pyinstaller手册的这一部分:
https://pythonhosted.org/PyInstaller/#id67
列出隐藏的进口
如果Analysis认为它已找到所有导入,但应用程序因导入错误而失败,则问题是隐藏导入; 也就是说,分析阶段不可见的导入.
当代码使用import或者exec或eval 时,可能会发生隐藏导入.当扩展模块使用Python/C API进行导入时,也会发生隐藏导入.发生这种情况时,Analysis无法检测到任何内容 没有警告,只在运行时出现ImportError.
要查找这些隐藏的导入,请使用-v标志(上面的获取Python的详细导入)构建应用程序并运行它.
一旦知道了需要哪些模块,就可以使用--hidden-import =命令选项或编辑spec文件或使用钩子文件将所需模块添加到bundle中(请参阅下面的了解PyInstaller Hook).