【问题标题】:How do I tell py2app to use/include 32bit Python (for wxPython)?如何告诉 py2app 使用/包含 32 位 Python(用于 wxPython)?
【发布时间】:2012-05-16 01:11:06
【问题描述】:

我正在使用 OS X Lion (10.7.3),我正在尝试使用 wxPythonpy2app 编写一个跨平台、独立的基于 GUI 的程序。

我尝试使用 Lion 附带的 Python 2.7.1。

我得到了wxPython2.8 二进制文件 (wxPython2.8-osx-unicode-py2.7)。

我通过 pip 安装了py2app

这是我的小测试应用:

#!/usr/bin/python
import wx
app = wx.App()
frame = wx.Frame(None, -1, 'test.py')
frame.Show()
app.MainLoop()

这是我的setup.py

from setuptools import setup
setup(
    app=["test.py"],
    setup_requires=["py2app"],
)

wxPython 2.8 想要 32 位模式,所以我使用 arch 命令:

arch -i386 /usr/bin/python2.7 test.py

我如何告诉 py2app 使用/包含 32 位 Python?

可以手动交换应用程序包中的相关文件,但这是一个相当笨拙的解决方法。我也可以使用 64 位 wxPython2.9,但还没有稳定的版本可用。我应该切换到cx_Freeze 吗?这里的最佳做法是什么?

【问题讨论】:

  • 那么您的/usr/bin/python2.7 安装是32 位还是64 位?如果是 64,你必须安装 32 位版本并使用它。
  • file /usr/bin/python2.7 (Python 2.7.1) 告诉我它是一个具有 2 种架构(64 位和 32 位)的通用二进制文件。来自 python.org 的仅 32 位 Python 2.7.3 不适用于 OSX 10.7。
  • 我安装了不支持 64 位的 python-2.7.3-macosx10.3.dmg,它确实有帮助。但是,现在我有一个默认的 python,它不必要地支持 PPC 架构,整个包实际上是为 10.3 而不是 10.7 制作的。这真的是要走的路吗?

标签: python wxpython osx-lion 32bit-64bit py2app


【解决方案1】:

如果您安装了 64 位 Python,那么它将创建一个 64 位应用程序。
如果您安装了 32 位 Python,那么它将创建一个 32 位应用程序。

如果您同时安装了两者,那么创建的内容将取决于 Python 从何处收集其库,32 位或 64 位安装文件夹。
在 Windows 上,这取决于实际运行的 Python 可执行文件。这取决于您的系统或用户 PATH 设置中哪个是第一个。

当你键入 python setup.py 时,Windows 会运行 python.exe,从命令行运行 python.exe 取决于你 PATH 环境变量。如果您在资源管理器中双击 setup.py 会运行哪个取决于您与 .py 文件的文件关联。

您可以通过从任意实例中生成一个 32 位 python 实例来轻松地使 setup.py 确保运行正确。

【讨论】:

  • P.S.如果您使用的是 Linux,则通常适用相同的 PATH 规则。然而,由于符号链接,一些系统可能会做一些更复杂的事情。
  • 感谢您的回答,但我认为这不仅仅是 PATH 问题。在 OSX 上,python 表示为支持多种架构的单个文件。我认为它由几个组合的 Mach-O 文件组成。
猜你喜欢
  • 2014-07-03
  • 1970-01-01
  • 2011-12-08
  • 2015-11-06
  • 2011-11-19
  • 2013-11-09
  • 2013-03-15
  • 1970-01-01
  • 2014-02-25
相关资源
最近更新 更多