Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-打包源代码分发版_Python_Packaging - Fatal编程技术网

Python-打包源代码分发版

Python-打包源代码分发版,python,packaging,Python,Packaging,我目前正在编写一个python程序,我想将其分发给一些en用户(和开发人员)。我想把运行程序所需的步骤减少到最少 我的用例相对简单。我希望过程/工具/任何东西: A) 下载应用程序运行所需的软件包列表 B) 按顺序运行python脚本列表(例如,创建数据库,然后运行迁移) 我知道distlib已经做到了一些。然而,我发现文档有点混乱,似乎有一个安装脚本的API,但没有一个自动执行脚本的API 理想情况下,我会指定一个脚本列表和一个依赖项列表,并让程序自动安装它们。解决这个问题的最佳方法可能是使用

我目前正在编写一个python程序,我想将其分发给一些en用户(和开发人员)。我想把运行程序所需的步骤减少到最少

我的用例相对简单。我希望过程/工具/任何东西:

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

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

我知道distlib已经做到了一些。然而,我发现文档有点混乱,似乎有一个安装脚本的API,但没有一个自动执行脚本的API


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

解决这个问题的最佳方法可能是使用带有Makefile()的
make

通过setup.py文件的Distlib将通过为一些python脚本命名来帮助您提高可读性。您可以使用
make
target/dependencies系统按顺序执行任务


如果你想坚持使用python,你也可以使用Luigi(),但这似乎有些过分。

好的,所以我结束了我自己的东西,基于我想要的界面外观。安装应用程序的代码如下所示:

from installtools import setup

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

setup("Shelob", "requirements.txt", scripts)
完整脚本可在此处找到:

由于PIP没有公共API(),因此脚本使用子流程API调用:

pip安装-r[要求\u文件\u路径]

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

您可能想阅读:,