【发布时间】:2012-05-27 08:08:07
【问题描述】:
我需要使用 wxPython 创建一个独立的 python 应用程序,以使用 Mac OSX Lion(客户端的操作系统)。 我只能使用带有 Snow Leopard 的 Mac,并用它来使用 py2app 构建应用程序。使用 Snow Leopard 可以正常工作,甚至无需安装 wxPython。
然而,在 OSX Lion 上,wx 导入失败(未找到模块),即使在安装了 wxPython for python2.7(Carbon)之后也是如此。我可以从终端导入 wx(使用默认的 python - 2.7),但应用程序仍然无法在导入时找到 wx。
我使用了以下 setup.py:
from setuptools import setup
APP = ['main.py']
DATA_FILES = []
OPTIONS = {'arch': 'i386', 'argv_emulation': True}
setup(
app=APP,
data_files=DATA_FILES,
options={'py2app': OPTIONS},
setup_requires=['py2app'],
)
并使用arch -i386 /usr/bin/python2.6 setup.py py2app 编译它,以便能够在 32 位上运行它。
让它在 Lion 上运行、在 Snow Leopard 上编译的最佳方式是什么?我可以将 wxPython 包含在应用程序中,甚至包含 python 本身(以防它真的需要与 py2.6 一起运行)吗?我可以命令应用程序运行 /usr/bin/python2.6 吗?
【问题讨论】:
-
您是否安装了 32 位 wxPython?您是否安装了 Python 2.7.3 Mac OS X 64 位/32 位 x86-64/i386 安装程序(适用于 Mac OS X 10.6 和 10.7)?
-
@Craig 在雪豹上我只是使用操作系统自带的wxPython,在32位模式下运行python时可以导入。我希望能够分发应用程序而无需在客户的 Lion 上安装任何软件。
-
Python 有两个可以安装的二进制文件:一个二进制文件用于 OSX 10.3 到 10.6,另一个用于 10.6 和 10.7。您的 Snow Leopard 机器必须具有 10.6/10.7 二进制文件,在 downloads.python.org 网站上称为“Python 2.7.3 Mac OS X 64-bit/32-bit x86-64/i386 Installer”。
-
@Craig 我需要在每个客户的计算机上安装该 python 发行版,还是使用 Lion 自己的 python2.7 运行?
-
您不需要在客户端计算机上安装 Python 或 wxPython。您将拥有一个包含两者的非常大的应用程序(50 Meg 左右)。构建在不同操作系统版本上运行的应用程序的诀窍是执行构建的机器必须具有与两种操作系统兼容的 Python 和 wxPython 版本。