2017-08-01 126 views
0

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

我的计划有两个子应用,

子应用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
  1. 您可以使用pyinstaller而不是py2app,我觉得这是一个更好的选择,考虑到它提供的控件和功能。在Mac上使用选项--windowed进行构建。这给你一个(.app)文件以及dist文件夹中的unix可执行版本。

.app文件基本上是在MAC应用结构(文件夹结构)

check this official website with good starting examples

  • 对于你的情况下,子应用1 - 你可以写一个shell脚本并在应用程序被添加为macOS中的应用程序时调用。

  • subapplication2 - 将是你的主程序运行时调用应用程序

  • 你不必包括卷曲和OS modules.If这些都是在你的.py文件导入,pyinstaller会自动把它们打包给你。

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

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

    +0

    如果我只传递安装文件给我的朋友安装和使用应用程序,py-installer如何调用shell脚本? py-installer是否也会打包shell脚本? – b207

    +0

    不确定shell脚本的打包,但你可以使用python的OS或子进程模块来编写它们,并且可以通过pyinstaller发布。 –