2012-03-15 54 views
8

你怎麼打包帶setuptools的Python應用程序,這樣,當它的安裝(例如,通過setup.py或PIP),它把一個守護進程腳本在適當的位置一個Python守護進程,啓動它,並標記它在啓動時自動啓動?如何打包與setuptools的

就我而言,我的代碼只能用Linux下正常工作,所以我只關心在Linux環境(特別是Ubuntu的)安裝守護程序。

我發現severalpostsdescribing如何輕鬆地創建Python的守護進程,但我似乎無法找到任何描述如何你將它們安裝在生產環境中,這樣他們會爲任何其他正常的守護進程來處理或服務。

我知道Ubuntu和其他一些發行版在/etc/init.d中保留它們的守護進程,並且我知道如何使用setuptools將文件複製到文件系統上的特定位置,因此可以安全地複製或符號鏈接腳本到/etc/init.d然後運行chkconfig來設置它的運行時,還是有一種更安全的分發中立方式來安裝守護進程?

回答

3

這將通過創建發行適當的包(在Ubuntu,一個.deb的情況下),可以更好地處理,因爲你不能保證在發行版的啓動腳本的位置。例如,arch linux使用/etc/rc.d/。此外,複製到這樣的位置將需要root訪問權限(我不相信這是安裝python軟件包所必需的),並且在卸載時可能不易恢復。

我會建議你創建一個正常的setupttools安裝,然後將其與鏈接到/etc/init.d打包成一個deb。

+0

有趣。儘管我總是*必須'sudo'才能安裝Python包,所以我認爲不應該是root問題。 – Cerin 2012-03-15 15:24:22

+0

我可能是錯的,但我認爲,在python3至少,你可以安裝到用戶特定的位置(例如〜/ .python或東西) – aquavitae 2012-03-15 15:32:32

+0

您可以隨時使用的virtualenv無論您想去哪裏 – Dikei 2012-03-15 16:08:42