【问题标题】:Can I make a 32-bit program with cx_Freeze if I have a 64-bit OS?如果我有 64 位操作系统,我可以使用 cx_Freeze 制作 32 位程序吗?
【发布时间】: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


【解决方案1】:

不,您不需要购买另一台 PC(谢天谢地),也不需要他们的命令。如果您想要一个 32 位 .exe,您只需要一个 x32 位 Python 安装并以正常方式冻结它,您将拥有一个 x32 可执行文件。这将适用于 x32 和 x64 计算机。

由于您正在运行 x64 安装,因此您还可以创建 x64 .exe 并同时拥有 x32(如果您获得 x32 位安装)和 x64 .exe。

【讨论】:

    【解决方案2】:

    您可以使用 Windows 10 32 位运行虚拟机,并且可以在机器上安装 Python 并且它可以工作。

    如果你不能运行虚拟机,网上有很多教程。

    【讨论】:

      猜你喜欢
      • 2012-05-09
      • 2012-09-01
      • 2015-09-26
      • 2016-02-07
      • 1970-01-01
      • 2011-07-07
      • 2013-08-29
      • 2011-07-06
      • 1970-01-01
      相关资源
      最近更新 更多