如何在 python 中为 64 位机器创建安装程序?

Posted

技术标签:

【中文标题】如何在 python 中为 64 位机器创建安装程序?【英文标题】:How can I create an installer for 64-bit machine in python? 【发布时间】:2018-12-11 05:19:16 【问题描述】:

我正在为我开发的应用程序创建安装程序。以下是我正在使用的设置文件

from cx_Freeze import setup, Executable 

buildOptions = dict(excludes = ["tkinter"], includes =["idna.idnadata"], optimize=1)

setup(name = "SoftwareGateway" , 
      version = "0.1" , 
      description = "" , 
      options =dict(build_exe = buildOptions),
      executables = [Executable("main.py", base = base)])

默认情况下,这会为 32 位目标构建安装程序。我这样说是因为,当我安装它时,它会安装在 ProgramFiles(x86) 中。

我面临的问题是,我有一个 64 位的 IoT-Hub 客户端库(.pyc 文件)。我能够创建安装程序,但这是针对 x86 的。当我安装并尝试运行时,它会引发错误

DLL 加载失败,%1 不是有效的 win32 应用程序

所以,作为第一步,我想为 64 位目标创建一个安装程序,看看它是否有效。请提供我可以为 64 位机器创建安装程序的方法。

稍后我会尝试找到一个用于 32 位的 IoT-Hub 客户端库,并为 x86 构建它。

【问题讨论】:

【参考方案1】:

cx_Freeze 基本上为它所属的 python 安装的平台和配置创建一个可执行文件。引用cx_Freeze documentation:

cx_Freeze 可在 Windows、Mac 和 Linux 上运行,但在每个平台上,它只生成在该平台上运行的可执行文件。因此,如果您想在 Windows 上冻结您的程序,请在 Windows 上冻结它;如果您想在 Mac 上运行它,请在 Mac 上冻结它。

因此,在 Windows 64 位机器上,您可以通过使用 64 位 python 安装运行安装脚本来创建 64 位可执行文件。此可执行文件仅适用于 Windows 64 位计算机。

在 Windows 64 位计算机上,您还可以通过使用 32 位 python 安装运行安装脚本来创建 32 位可执行文件。此可执行文件可在 Windows 32 位和 64 位计算机上运行。另见Can I make a 32 bit program with cx_freeze if I have a 64 bit OS?

【讨论】:

以上是关于如何在 python 中为 64 位机器创建安装程序?的主要内容,如果未能解决你的问题,请参考以下文章

在 python 中为大文件创建校验和的最快方法

使用 python pyinstaller 在 64 位机器上生成 32 位 exe

如何在/使用 Visual Studio 2010 中为 64 位 Windows 构建 libcurl?

如何根据目标机器(32 位或 64 位)有条件地使用 WiX 安装文件?

如何在python中为相同的并行机器创建甘特图?

如何在 Python 中为不和谐的机器人创建重新加载命令?