2017-08-01 91 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發佈。 –