Python - 打包源代码分发

时间:2017-02-12 00:14:25

标签: python packaging

我正在编写一个python程序,我想将它分发给一些用户(和开发人员)。我想减少运行程序所需的步骤数量。

我的用例相对简单。我想要流程/工具/无论如何:

A)下载应用程序运行所需的软件包列表。

B)按顺序运行python脚本列表(例如创建数据库,然后运行迁移)。

我知道distlib已经做了一些。但是我发现文档有点令人困惑,似乎有一个安装脚本的API,而不是自动执行它们的API。

理想情况下,我会指定一个脚本列表和一个依赖项列表,让程序自动安装它们。

2 个答案:

答案 0 :(得分:1)

解决此问题的最佳方法可能是将make与Makefile(https://www.gnu.org/software/make/)一起使用。

通过setup.py文件,Distlib可以通过为某些python脚本命名来帮助你使其更具可读性。您可以使用make目标/依赖关系系统来顺序执行任务。

如果你想坚持使用python,你也可以使用Luigi(https://luigi.readthedocs.io/en/stable/),但这似乎有点过分了。

答案 1 :(得分:0)

好的,所以我根据我希望界面的外观来结束我自己的事情。安装应用程序的代码如下所示:

window.getElements = function(selector,cb) {
    var selectors = document.querySelectorAll(selector);
    [].forEach.call(selectors, cb);
};

getElements(".something", function(el){el.innerHTML = "ha"});

getElements("#one", function(el){el.style.background = "red" });

完整的脚本可以在这里找到:https://gist.github.com/fdemian/808c2b95b4521cd87268235e133c563f

由于PIP没有公共API(and isn't likely to have one in the near future),脚本使用子进程API来调用:

pip install -r [requirements_file_path]

之后,它逐个调用指定的python脚本。虽然它可能不是一个非常强大的,作为权宜之计的解决方案似乎可以解决这个问题。