【问题标题】:Compile 64-bit Mac app with py2app使用 py2app 编译 64 位 Mac 应用程序
【发布时间】:2011-10-19 12:50:53
【问题描述】:

我在我的 Mac OS X 10.7 上使用 py2app 0.6.3 编译了 Python screen saver,但是当我在系统偏好设置中打开屏幕保护程序时,我收到以下消息:

您无法在此计算机上使用 Silly Balls 屏幕保护程序。

我读到这条消息意味着它需要编译为 64 位。

我在 64 位系统上运行 Python 2.7.1 64 位。

如何使用 py2app 编译 64 位应用程序以使屏幕保护程序示例工作?

【问题讨论】:

  • 您找到解决方案了吗?我有同样的问题。另请参阅迈克尔回答下的评论。

标签: python macos 64-bit screensaver py2app


【解决方案1】:

类似这样的东西 - 注意 'LSArchitecturePriority' : 'x86_64',

#cat ./setup.py 
"""
This is a setup.py script generated by py2applet

Usage:
    python setup.py py2app
"""

from setuptools import setup, find_packages

APP = ['YourApp.py']
DATA_FILES = []
OPTIONS = {
    'argv_emulation': False,
    'semi_standalone':'False',
    'optimize': 2,
    'includes': [
        ...
    ],
    'site_packages': 'True',
    'plist' : {
        'LSPrefersPPC' : False,
        'LSArchitecturePriority' : 'x86_64',
    }
}

setup(
    name = "YourApp",
    version = "0.0.4",
    author = "Iam",
    author_email = "info@test.com",
    description = ("An demonstration of how to create, document, and publish MacOS app"),
    app=APP,
    data_files=DATA_FILES,
    options={'py2app': OPTIONS},
    setup_requires=['py2app'],
)

【讨论】:

  • 我也遇到了同样的问题,添加 LSArchitecturePriority 选项对我来说并没有解决问题。有没有人有其他猜测?我找到了这个链接:developer.apple.com/library/mac/#qa/qa1666/_index.html,但我不确定如何将该建议应用到我的 setup.py 文件中。
  • 对不起,@Jason,我没有。我写信给 Ronald Oussoren(主要的 PyObjC 开发人员)this email thread。问题似乎是在 OS 10.6 和 OS 10.7 中,Apple 的屏幕保护程序框架要求您的代码在构建时启用垃圾收集,但 PyObjC 不支持 GC。
  • 此外,Apple 现在改变了对 GC 的看法。较新的框架(包括 10.8 中的屏幕保护程序框架)不使用它,因此此时将 GC 支持添加到 PyObjC 将是浪费时间。底线:PyObjC 屏幕保护程序在 10.6 和 10.7 中无法使用,但 10.5 和 10.8 应该可以使用(不过我个人没有尝试过)。
  • 谢谢@superbatfish。我尝试在 OSX 10.8.3 上运行 the SillyBalls demo 并没有运气。也许我会跟进 Ron 或邮件列表。
  • 我联系了 SillyBalls 的开发者 Jason Toffaletti,他不再从事 osx 开发。所以,没有帮助。
猜你喜欢
  • 2011-01-25
  • 2011-12-08
  • 2013-05-19
  • 1970-01-01
  • 2020-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-05
相关资源
最近更新 更多