2017-02-12 69 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脚本,一个接一个。虽然它可能不是一个非常强大的,但作为一个权宜之计解决方案,它似乎有诀窍。