【发布时间】:2015-10-09 14:27:38
【问题描述】:
我目前正在运行 64 位 Windows 7 Home,并且正在开发一个程序,我希望该程序可用于 32 位和 64 位 Windows 操作系统。当我使用 cx_Freeze 将我的 .py 转换为 .exe 时,它只允许将其安装在 64 位操作系统上。
是否需要购买 32 位计算机才能将其转换为 32 位程序,或者是否有一组特殊的命令可以让 cx_Freeze 同时创建 32 位和 64 位 exe?
from cx_Freeze import *
import sys
base = None
if sys.platform == 'win32':
base = "Win32GUI"
executables = [Executable("iNTMI.py", shortcutName = "iNTMI", shortcutDir = "DesktopFolder", base = base, icon = "C:/Program Files/iNTMI/assets/images/programIcon.ico")]
setup(
name = "iNTMI",
options = {"build_exe": {"packages": ["tkinter", "minecraftItems", "ProgFunctions", "minecraftItems"], "include_files": ["ProgFunctions.py", "minecraftItems.py"]}},
executables = executables
)
【问题讨论】:
-
如果您安装 32 位 python 并且只使用 32 位库,您可以
freeze它并让它在 32 位和 64 位版本的 Windows 上工作。您收到此错误的原因是您安装了 64 位版本的 python。 -
@JamesKent 这实际上很有意义。谢谢!如果我恢复到 32 位 Python,我是否必须重新下载所有模块? (cx_freeze、枕头等)?
-
这取决于您如何安装它们,如果您是从源代码安装,则通常不会,但大多数可以使用
.exe或.msi文件安装的模块都必须重新下载,但使用 32 位 python 的优势(在这种情况下)是一个构建适用于两者(假设您不需要大量内存或其他 64 位附加功能) -
我使用 .whl 文件安装的某些文件和使用 .exe/.msi 完成的其他文件。 .whl 模块是否也需要更换?
-
我没有使用那么多
.whl文件,所以我不确定,我认为这取决于模块的构建方式,如果它是纯python那么它应该是文件,但是如果它包含 C 扩展代码,那么它可能不包含。您可能只需要尝试一下就可以看到
标签: python 64-bit 32-bit cx-freeze