python应用程序到osx(mac)应用程序

时间:2017-08-01 03:55:07

标签: python macos installer py2app

我为mac OS创建了Python应用程序。我想使用py2app将其转换为Mac OS应用程序。我是Mac OS的新手,所以我不知道Mac OS的所有概念和文件结构,但我正在阅读它。

我的程序有两个子应用程序,

子应用程序1:这将自定义xml并将xml放入launchd的plist目录中。我想运行我的python程序,每当macbook启动或有人登录时运行,这就是我将创建的xml文件放入launchd的plist中的原因。只有在执行安装程序时,此子应用程序才应运行一次。 (请提供建议或执行此任务的任何其他方式)。

子应用程序2:这将是我的主程序。

我有以下问题,

  • 如何为我的Python应用程序创建安装程序,以便我可以 将安装程序传递给我的朋友,他们可以运行应用程序?
    • 我正在阅读py2app,但最常见的是什么?
    • 是否可以运行子应用程序1并创建子应用程序2的macos应用程序并提供子应用程序2安装到子应用程序1的路径?
  • 如何在执行安装程序时仅使子应用程序1运行一次?
  • 我是否需要包含python中的默认库(如os,sys,libcurl等) 安装包?如果是的话,我该怎么做?
  • 如果我朋友的PC没有python或任何内置库 如果他/她试图运行我的安装程序将会发生什么,如何 我可以阻止这种情况吗?

感谢。

1 个答案:

答案 0 :(得分:1)

  1. 您可以使用pyinstaller而不是py2app,考虑到它提供的控件和功能,我觉得这是一个更好的选择。在mac上使用选项--windowed构建。这将为您提供一个(.app)文件以及dist文件夹中的unix可执行文件。
  2. .app文件基本上是一个mac app结构(文件夹结构)

    check this official website with good starting examples

    1. 对于您的情况,sub application1 - 您可以编写一个shell脚本,并在将应用程序作为应用程序添加到macOS中时调用。

    2. subapplication2 - 将是您的主程序,并将在调用应用程序时运行

    3. 您不必包含curl和os模块。如果这些是在.py文件中导入的,pyinstaller会自动为您打包它们。

    4. 你的朋友不需要安装python,pyinstaller也会包装python解释器。

    5. 对于你的第二个问题 - 可能会写一个shell脚本来做到这一点。