问题标签 [pyinstaller]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - PyInstaller 产生的 .exe 导致 wxPython 崩溃
我正在尝试通过在 Windows Vista 上使用 PyInstaller 将一个非常简单的 wxPython 脚本编译为可执行文件。
Python 脚本只不过是 wxPython 中的 Hello World。在添加程序所需的任何功能之前,我正在尝试将其作为 Windows 可执行文件启动并运行。但我已经被困住了。
我跳过了一些关于 MSVCR90.DLL、MSVCP90.DLL 和 MSVCPM90.DLL 的循环,我最终从我的 Visual Studio 安装中复制了它们 (C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\ Microsoft.VC90.CRT)。
根据 PyInstaller 的说明,我运行:
到现在为止还挺好。我继续。
然后是最后的命令。
我得到了生成的“guitest.exe”文件,但在执行时,它“只是崩溃”......并且没有调试信息。这只是标准的 Windows Vista 崩溃之一。
脚本本身,guitest.py 本身运行得很好。它只是作为可执行文件崩溃,我完全迷失了。我什至不知道要寻找什么,因为我尝试过的任何东西都没有返回任何相关结果。
另一个文件作为编译过程的结果生成,称为“warnguitest.txt”。这是它的内容。
我不知道该怎么做。再一次,我的搜索没有结果。
python - python cx_Freeze Egg问题
我正在尝试从 python 脚本(使用大量鸡蛋)构建可执行文件(用于 32 位 windows xp)
我考虑过 py2exe(0.6.9)、PyInstaller (1.4) 和 cx_Freeze (4.1.2)
PyInstaller 不喜欢 python 2.6 午餐)
所以我选择了 cx_Freeze (应该从 4.0 开始无缝支持鸡蛋)。但由于某种原因它没有。
为了识别鸡蛋内的文件,我传递了哪些参数?
python - py2exe/pyinstaller 和 DispatchWithEvents
我有一个使用 win32com 库来控制 iTunes 的程序,但在将其编译成可执行文件时遇到了一些问题。问题似乎围绕使用DispatchWithEvents
而不是Dispatch
. 我创建了一个非常简单的程序来说明我的问题:
使用Dispatch
,程序编译并正确运行。使用DispatchWithEvents
,从命令行调用时程序运行良好,但在运行 exe 时会产生以下错误:
我也尝试过使用 PyInstaller,它给出了类似的错误:
我知道我可以在我的setup.py
文件中手动添加类型库,但我想在具有不同版本 iTunes 的计算机上运行代码而不重新编译,所以我更喜欢动态创建它。如果设置/规范无法做到这一点,也许还有另一种加载事件的方法?谢谢。
添加:
多亏了 Ryan,我发现我可以获取生成的 py 文件,经过一番挖掘,能够提出以下内容。
获取生成的 py 文件(来自makepy.py
)并将其重命名为cominterface.py
. 然后您需要执行以下操作来实际创建带有事件处理程序的 COM 对象。
然后你就可以开始你的事业了。
python - 为什么 pyinstaller 不让我成为 .exe 文件?
我正在尝试按照本指南将简单的 Hello World 脚本制作成 .exe 文件。
我有带有 AMD 64 位处理器的 Windows Vista
我已经安装了 Python 2.6.5(Windows AMD64 版本)
我已经设置了 PATH(如果这是正确的话),以便命令行能够识别
我已经安装了 UPX(似乎只有为 Windows 的 32 位版本)并按照说明将 upx.exe 的副本粘贴到 Python26 文件夹中。
我已经安装了 Pywin(Windows AMD 64 Python 2.6 版本)
我已经运行了 Pyinstaller 的 Configure.py。它提供了一些错误消息,但似乎已完成。我不知道这是否是导致问题的原因,所以以下是我运行它时的内容:
C:\Python26\Pyinstaller\branches\py26win>Configure.py
I: 从 C:\Python26\Pyinstaller\branches\py26win\config.dat 读取旧配置
I: 计算 EXE_dependencies
I: 查找 TCL/TK...
I: 分析C:\Python26\DLLs_tkinter.pyd
W: 无法获取文件的二进制依赖项:
W: C:\Python26\DLLs_tkinter.pyd
W: Traceback(最近一次调用最后):
文件“C:\Python26\Pyinstaller\branches\py26win\ bindepend.py”,第 608 行,在 get Imports 中
返回 _getImports_pe(pth) 文件“C:\Python26\Pyinstaller\branches\py26win\bindepend.py”,第 275 行,在 _getImports_pe
importva 中,importsz = datadirs[1] IndexError:列表索引超出范围I: 正在分析 C:\Python26\DLLs_ctypes.pyd
W: 无法获取文件的二进制依赖项:
W: C:\Python26\DLLs_ctypes.pyd
W: Traceback(最近一次调用最后):
文件“C:\Python26\Pyinstaller\branches \py26win\bindepend.py”,第 608 行,在 get Imports 中
返回 _getImports_pe(pth)
文件“C:\Python26\Pyinstaller\branches\py26win\bindepend.py”,第 275 行,在 _ge tImports_pe
importva,importsz = datadirs[1 ]
IndexError: 列表索引超出范围I: Analyzing C:\Python26\DLLs\select.pyd
W: 无法获取文件的二进制依赖项:
W: C:\Python26\DLLs\select.pyd
W: Traceback (最近一次调用最后):
File "C:\Python26 \Pyinstaller\branches\py26win\bindepend.py”,第 608 行,在 get Imports 中
返回 _getImports_pe(pth)
文件“C:\Python26\Pyinstaller\branches\py26win\bindepend.py”,第 275 行,在 _ge tImports_pe
importva, importsz = datadirs[1]
IndexError: 列表索引超出范围I: 正在分析 C:\Python26\DLLs\unicodedata.pyd
W: 无法获取文件的二进制依赖项:
W: C:\Python26\DLLs\unicodedata.pyd
W: Traceback (最近一次调用最后一次):
文件 "C:\Python26 \Pyinstaller\branches\py26win\bindepend.py”,第 608 行,在 get Imports 中
返回 _getImports_pe(pth)
文件“C:\Python26\Pyinstaller\branches\py26win\bindepend.py”,第 275 行,在 _ge tImports_pe
importva, importsz = datadirs[1]
IndexError: 列表索引超出范围I: 分析 C:\Python26\DLLs\bz2.pyd
W: 无法获取文件的二进制依赖项:
W: C:\Python26\DLLs\bz2.pyd
W: Traceback (最近一次调用最后):
文件 "C:\Python26 \Pyinstaller\branches\py26win\bindepend.py”,第 608 行,在 get Imports 中
返回 _getImports_pe(pth)
文件“C:\Python26\Pyinstaller\branches\py26win\bindepend.py”,第 275 行,在 _ge tImports_pe
importva, importsz = datadirs[1]
IndexError: 列表索引超出范围I: 分析 C:\Python26\python.exe
I: C:\Python26\python.exe 的依赖程序集:
I: amd64_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_none
I: 搜索程序集 amd64_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022。 none...
I: 找到清单 C:\Windows\WinSxS\Manifests\amd64_microsoft.vc90.crt_1fc8b3b9a 1e18e3b_9.0.21022.8_none_750b37ff97f4f68b.manifest
I: 搜索文件 msvcr90.dll
I: 找到文件 C:\Windows\WinSxS\amd64_microsoft。 vc90.crt_1fc8b3b9a1e18e3b_9.0.21 022.8_none_750b37ff97f4f68b\msvcr90.dll
I: Searching for file msvcp90.dll
I: Found file C:\Windows\WinSxS\amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.21 022.8_none_750b37ff97f4f68b\msvcp90.dll
I: 搜索文件 msvcm90.dll
I: 找到文件 C:\Windows\WinSxS\amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.21 022.8_none_750b37ff97f4f68b\msvcm90.dll
I: 添加 Microsoft.VC90.CRT\Microsoft.VC90.CRT.manifest
I:添加 Microsoft.VC90.CRT\msvcr90.dll
I:添加 Microsoft.VC90.CRT\msvcp90.dll
I:添加 Microsoft.VC90.CRT\msvcm90.dll
W:无法获取文件的二进制依赖项:
W:C:\Python26\ python.exe
W:回溯(最近一次调用):
文件“C:\Python26\Pyinstaller\branches\py26win\bindepend.py”,第 608 行,在 get Imports 中
返回 _getImports_pe(pth)
文件“C:\Python26\Pyinstaller \branches\py26win\bindepend.py",第 275 行,在 _getImports_pe 中
importva,importsz = datadirs[1]
IndexError:列表索引超出范围I: Analyzing C:\Windows\WinSxS\Manifests\amd64_microsoft.vc90.crt_1fc8b3b9a1e18e 3b_9.0.21022.8_none_750b37ff97f4f68b.manifest
I: Analyzing C:\Windows\WinSxS\amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.210 22.8_none_750b37ff97f4f68b\msvcr90.dll
W: Cannot获取文件的二进制依赖项:
W: C:\Windows\WinSxS\amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.21022.8_none_ 750b37ff97f4f68b\msvcr90.dll
W: Traceback(最近一次调用):
文件“C:\Python26\Pyinstaller\branches\ py26win\bindepend.py”,第 608 行,在 get Imports 中
返回 _getImports_pe(pth)
文件“C:\Python26\Pyinstaller\branches\py26win\bindepend.py”,第 275 行,在 _ge tImports_pe
importva,importsz = datadirs[1]
IndexError:列表索引超出范围I: Analyzing C:\Windows\WinSxS\amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.210 22.8_none_750b37ff97f4f68b\msvcp90.dll
W: Cannot get binary dependencies for file:
W: C:\Windows\WinSxS\amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.21022.8_none_ 750b37ff97f4f68b\msvcp90.dll
W:回溯(最近一次调用最后):
文件“C:\Python26\Pyinstaller\branches\py26win\bindepend.py”,第 608 行,在获取导入
返回 _getImports_pe(pth)
文件“C:\Python26 \Pyinstaller\branches\py26win\bindepend.py",第 275 行,在 _getImports_pe
importva 中,importsz = datadirs[1]
IndexError: list index out of rangeI: Analyzing C:\Windows\WinSxS\amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.210 22.8_none_750b37ff97f4f68b\msvcm90.dll
W: Cannot get binary dependencies for file:
W: C:\Windows\WinSxS\amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.21022.8_none_ 750b37ff97f4f68b\msvcm90.dll
W:回溯(最近一次调用最后):
文件“C:\Python26\Pyinstaller\branches\py26win\bindepend.py”,第 608 行,在获取导入
返回 _getImports_pe(pth)
文件“C:\Python26 \Pyinstaller\branches\py26win\bindepend.py",第 275 行,在 _getImports_pe
importva,importsz = datadirs[1]
IndexError: list index out of rangeI: 找不到 TCL/TK
I: 测试 Zlib...
I: ... Zlib 可用
I: 测试设置图标、版本资源的能力...
I: ... 资源更新可用
I: 测试 Unicode支持...
I: ... Unicode 可用
I: 测试 UPX...
I: ...UPX 可用
I: 计算 PYZ 依赖项...
I: 完成生成 C:\Python26\Pyinstaller\branches\py26win\config .dat
我的 Python 脚本(名为 Hello.py)与示例相同:
这是我的 BAT 文件,在同一目录中:
设置 PIP=C:\Python26\Pyinstaller\branches\py26win\
python %PIP%Makespec.py --onefile --console --upx --tk Hello.py
python %PIP%Build.py Hello.spec
当我在命令提示符下运行 Hello.bat 时,会生成几个文件,这些文件都不是 .exe 文件,并显示以下内容:
C:\我的文件>设置 PIP=C:\Python26\Pyinstaller\branches\py26win\
C:\My Files>python C:\Python26\Pyinstaller\branches\py26win\Makespec.py --onefile e --console --upx --tk Hello.py 写了 C:\My Files\Hello.spec 现在运行 Build .py 构建可执行文件
C:\我的文件>python C:\Python26\Pyinstaller\branches\py26win\Build.py Hello.spec
I:C:\Python26\python.exe 的依赖程序集: I: amd64_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_none Traceback(最近一次调用最后):文件“C:\Python26\Pyinstaller\branches\py26win\Build.py” ,第 1359 行,在 main(args[0], configfilename=opts.configfile)
文件“C:\Python26\Pyinstaller\branches\py26win\Build.py”中,第 1337 行,在主构建(specfile)
文件“C:\ Python26\Pyinstaller\branches\py26win\Build.py”,第 1297 行,在构建 execfile(spec)
文件“Hello.spec”,第 3 行,在
pathex=['C:\My Files'])
文件“C:\ Python26\Pyinstaller\branches\py26win\Build.py",第 292 行,在 __init__ 中
引发 ValueError,"找不到脚本 '%s'" % 脚本
ValueError: 找不到脚本'C:\Python26\Pyinstaller\branches\py26win\support\useTK.py'
我对命令提示符的了解有限,所以如果我需要在那里做一些事情,请和我一起采取一些步骤。
python - 将 Python 应用程序捆绑为单个文件以支持附加组件或扩展?
有几个实用程序——都具有不同的过程、限制和目标操作系统——用于获取 Python 包及其所有依赖项并将它们转换为易于交付给客户的单个二进制程序:
- http://wiki.python.org/moin/Freeze
- http://www.pyinstaller.org/
- http://www.py2exe.org/
- http://svn.pythonmac.org/py2app/py2app/trunk/doc/index.html
我的情况更进一步:第三方开发人员希望为我的应用程序编写插件、扩展或附加组件。当然,这是一个令人生畏的问题,在 Windows 等平台上的用户如何最轻松地安装插件或插件,以使我的应用程序可以轻松地发现它们已安装。但除了这个基本问题之外还有另一个问题:第三方开发人员如何将他们的扩展与扩展本身需要的任何库(可能是二进制模块,如 lxml)捆绑在一起,以使插件的依赖项可以同时导入插件可用的时间。
如何解决这个问题?我的应用程序是否需要在磁盘上拥有自己的插件区域和自己的插件注册表才能使其易于处理?或者是否有一般机制,我可以避免自己编写,这将允许作为单个可执行文件分发的应用程序环顾四周并找到也作为单个文件安装的插件?
python - 哪个更好 - PyInstaller 或 cx_Freeze?
有人能告诉我,在捆绑 Python 应用程序方面,两者哪个更好——cx_Freeze 还是 PyInstaller?我正在寻找基于以下因素的比较:
- 受欢迎程度(即更大的用户群)
- 构建二进制文件的足迹
- 跨平台兼容性
- 使用方便
python - 使用 pyinstaller 创建 Python 可执行文件时未导入库
我正在尝试为 Windows 构建一个 Python .exe 并且能够很好地创建它。但是,当我运行该应用程序时,我注意到它无法执行其所有功能,因为并非所有库都已导入;PySNMP 没有被具体导入。当我查看构建过程的输出时,我注意到 PySNMP 根本没有列出,即使我的程序中的几个模块导入了它。任何人都知道可能导致此问题的原因是什么?谢谢!
这是生成安装程序的代码:
subprocess - 使用 PyInstaller 杀死一个子进程
我创建了一个使用 Python subprocess.Popen(...) 的脚本。当我单击一个按钮时,我想销毁这个子进程(我使用 subprocess.kill())。当我使用 Python 时它工作正常。
但是,当我使用 PyInstaller “编译”我的脚本时,这不起作用。实际上,在任务管理器(Windows)中,有两个进程(一个来自临时目录[我猜是由 PyInstaller 创建的])。因此,当我单击按钮时,一个进程会停止,但 PyInstaller 创建的进程不会。
如何一次杀死 2 个进程?
坦克斯
PS:对不起我的英语不好...
python - 带有 MSAA 的 Python 二进制可执行文件在退出时挂起
我正在使用 python comtypes 来访问 IAccessible 接口以供 MSAA(Microsoft Active Accessibility)使用。之后我们使用 pyinstaller 创建二进制可执行文件,所以问题是在特定平台上 - Windows XP x64 我们的可执行文件在退出时挂起。在进程退出点被调用后,它挂在 ole32.dll 中的 WaitFotMultipleObjectsEx 上——它挂在系统代码中,而不是在我们的甚至 pyinstaller 引导加载程序中。在调查期间,我们发现了问题——它是在创建许多 IAccessible 对象(即创建子树)——如果你这样做,进程就会挂起。想知道其他人是否面临类似的问题?
PS 在其他操作系统上它工作正常。
python - 电子邮件模块的 PyInstaller 错误
首先创建一个名为 的脚本test.py
,其中包含一行:
保存并运行makespec.py
,build.py
然后我得到test.exe
. 这是我在运行时得到的test.exe
:
看起来 PyInstaller 不适用于电子邮件模块。我已经尝试过 PyInstaller 1.4、1.5rc 和最新的主干,它们都不起作用。Windows Server 2003 /w Python 2.6 在这里。有什么办法解决这个问题吗?