【问题标题】:py2app isn't creating a standalone version of my apppy2app 没有创建我的应用程序的独立版本
【发布时间】:2013-07-11 15:33:16
【问题描述】:

我正在使用 buildout 创建本地 python 环境,然后使用本地 python 使用 py2app 创建我的应用程序。但是,当我进入 .app 文件,特别是进入 Contents/MacOS/ 时,只有系统 python 的快捷方式。我希望 py2app 以某种方式获取 local python with it so that it only depends on itself, not on the system python.

所以我的问题是:我该如何解决这个问题,以便 py2app 将我的自定义本地版本 python2.7 捆绑在一起,以便我的应用程序将完全独立,而不管本地 python 版本如何?

如果更多信息有帮助,请告诉我。

我的 setup.py

from setuptools import setup

APP = ['main.py']
DATA_FILES = ['src/icon.xib']
OPTIONS = {
            'argv_emulation': True,
            'packages': [ 'requests' ],
            'iconfile':'src/myApp.icns',
            'plist': {'CFBundleShortVersionString':'0.1.0',
                      'LSUIElement': True
                     }
          }

setup(
    name='myApp',
    package_dir = {'':'src'},
    app=APP,
    data_files=DATA_FILES,
    options={'py2app': OPTIONS},
    setup_requires=['py2app'],
)

【问题讨论】:

  • stackoverflow.com/questions/10184974/… 有点类似。它可能会把你带到某个地方。
  • 对,我以前见过。我在做什么(使用来自 buildout 的本地 python)与那里的解决方案中描述的不同吗?我不是使用系统 python 创建应用程序,我使用的是本地 python
  • 嗯...根据 py2app 网站,只有启用了 -s 选项才能进行非独立构建。
  • 嗯,好像是这样。根据我所做的一些研究,一些 py2app 构建意外启用了该选项。验证您是否拥有最新版本。另外,你确定你是从终端调用本地 Python 吗?可以试试不使用 virtualenv 吗?
  • 好像是……可以修改setup.py来导入sys并打印sys.executable吗?而且,您可以尝试不使用 virtualenv 吗?

标签: python macos py2app


【解决方案1】:

Py2app 不会在您的应用程序包中包含系统文件,例如 /System/Library/Frameworks 中的 python 安装。

要创建还包含 Python 的包,您需要安装单独的 Python 版本(以及您使用的所有库)。

但是,请注意,使用 Python 系统版本创建的应用应该可以在具有相同 OSX 版本或更高版本的机器上正常运行。

【讨论】:

  • 我是用zc.buildout搭建环境的,看来本地的python不是标准的python。当我使用 py2app 时,它会创建半独立应用程序。但是,如果我使用标准 python 制作 virtualenv,我会得到想要的结果。你知道有没有一种方法可以让你下载/使用正确的 python for py2app?
  • 我自己不使用 buildout。如果 py2app 用它创建一个半独立的构建,buildout 要么创建一个 python 的静态构建(没有与 python 解释器共享的库),要么使用 /usr/bin/python 而不是你想要使用的那个。
猜你喜欢
  • 2020-08-01
  • 2018-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-04
相关资源
最近更新 更多