如何在 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 pyinstaller 在 64 位机器上生成 32 位 exe
如何在/使用 Visual Studio 2010 中为 64 位 Windows 构建 libcurl?