2017-02-12 106 views
2

我目前正在編寫一個Python程序,我想將它分發給一些en用戶(和開發人員)。我想將運行該程序的必要步驟減少到最低限度。Python - 打包源代碼

我的用例比較簡單。我希望過程/工具/任何:

A)下載應用程序工作所需的軟件包列表。 B)按順序運行python腳本列表(例如,創建數據庫,然後運行遷移)。

據我所知,distlib已經做了一些。不過,我發現文檔有點混亂,似乎有一個API來安裝腳本,但沒有一個可以自動執行它們。

理想情況下,我會指定一個腳本列表和一個依賴列表,讓程序自動安裝它們。

+1

您可能想要閱讀:http://stackoverflow.com/questions/17806485/execute-a-python-script-post-install-using-distutils-setuptools,https://github.com/lupien/pyHegel /blob/master/setup.py – fedepad

回答

1

也許來解決這個最好的辦法是使用make有一個Makefile(https://www.gnu.org/software/make/)。

Distlib,通過setup.py文件,將有助於你做出給予名稱一些Python腳本更易於閱讀。你可以使用make目標/依賴系統順序執行任務。

如果你想堅持到Python,你也可以使用路易吉(https://luigi.readthedocs.io/en/stable/),但它似乎是矯枉過正這裏。

0

好吧,所以我結束了自己寫的東西,基於我希望界面的外觀。用於安裝應用程序的代碼看起來是這樣的:

from installtools import setup 

scripts = ['create_database.py', 'run_migrations.py'] 

setup("Shelob", "requirements.txt", scripts) 

完整的腳本可以在這裏找到:https://gist.github.com/fdemian/808c2b95b4521cd87268235e133c563f

由於PIP沒有一個公共的API(and isn't likely to have one in the near future)的腳本使用子API調用:

PIP安裝-r [requirements_file_path]

之後,它調用指定的Python腳本,一個接一個。雖然它可能不是一個非常強大的,但作爲一個權宜之計解決方案,它似乎有訣竅。