跳转到主要内容

帮助您管理Python发行版

项目描述

简介

disthelper是一个命令行工具,帮助您管理Python发行版。您可能想创建Python脚本来自动化您项目的常见维护任务。但您把它们放在哪里呢?标准setup.py框架怎么样?您可以将setup.py视为Python的“make”工具,尽管它更像是Ian Bicking描述的那样,而不是一个实际的make工具,它有目标和依赖关系。例如,如果您编写了一个构建项目文档的脚本来上传它们,您可以从您的setup.py文件中运行这些命令

python setup.py build_docs upload_docs

它做什么

disthelper只是自动化了distutils的使用,这样您就不用担心如何创建自定义setup.py命令。它设置模块/子模块结构,编辑您的setup.cfg,并根据您的请求添加新的命令模块。disthelper不会做您手动无法做到的事情。

安装

您可以使用easy_install安装它

easy_install disthelper

或获取源代码

创建命令

disthelper实现为一个Paste扩展。假设您想创建我提到的这个build_docs命令。切换到您的项目目录并输入

$ paster distcmd build_docs
| Selected and implied templates:
|   disthelper#distcmd  A disthelper-based package for setup.py commands
|
| ** creating ./setup.py (you'll probably need to edit this)
| Variables:
|   command:       build_docs
|   distcmds_mod:  distcmds
|   package:       foo
| Creating template distcmd
|   Recursing into +package+
|     Creating ./foo/
|     Recursing into +distcmds_mod+
|       Creating ./foo/distcmds/
|       Copying +command+.py_tmpl to ./foo/distcmds/build_docs.py
|       Copying __init__.py to ./foo/distcmds/__init__.py
|     Copying __init__.py to ./foo/__init__.py
| patching ./setup.cfg ...
|
| ./foo/distcmds/build_docs.py
| ...is ready to edit
| run as:
|     python setup.py build_docs
|

如果您还没有Python包,它会提示您输入其名称。假设您将其命名为foo,您应该看到以下布局

$ tree
| .
| |-- foo
| |   |-- __init__.py
| |   `-- distcmds
| |       |-- __init__.py
| |       `-- build_docs.py
| |-- setup.cfg
| `-- setup.py
|
| 2 directories, 5 files

您的命令已准备好运行

$ python setup.py build_docs --help
| Global options:
|   --verbose (-v)  run verbosely (default)
|   --quiet (-q)    run quietly (turns verbosity off)
|   --dry-run (-n)  don't actually do anything
|   --help (-h)     show detailed help message
|
| Options for 'build_docs' command:
|   --long-option (-l)        <help>
|   --other-long-option (-o)  <help>
|
| usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
|    or: setup.py --help [cmd1 cmd2 ...]
|    or: setup.py --help-commands
|    or: setup.py cmd --help
|

然而,它还没有做任何有用的事情,所以开始吧!

我的命令消失了,我该怎么办?

不幸的是,distutils会完全忽略你命令中的任何ImportError,所以有一天你的命令可能会突然消失。为了检查你的命令是否设置正确,请运行

$ paster distcmd build_docs --check
| Selected and implied templates:
|   disthelper#distcmd  A disthelper-based package for setup.py commands
|
| Variables:
|   command:       build_docs
|   distcmds_mod:  distcmds
|   package:       foo
| attempting to import foo.distcmds.build_docs
| OK
| checking vars in ./setup.cfg
|
| build_docs OK

其他类似工具

disthelper并不适用于复杂的构建、依赖管理等,它只是帮助你创建维护脚本。你可能想了解一下…

  • Vellum

    • Vellum是一个像make一样的简单构建工具,但它是用Python编写的,使用简单且灵活的基于YAML的格式。

  • SCONS

    • 软件构建工具

  • zc.buildout

    • 开发构建管理系统

变更日志

  • 0.9.2

    • 修复了生成setup.py文件中的另一个错误

    • 增加了对功能测试的shelldoc支持(README示例)

  • 0.9.1

    • 修复了当setup.py文件不存在时对setup.py文件的处理

  • 0.9

    • 第一个版本,基本的paster命令正常工作

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码发行版

disthelper-0.9.2.tar.gz (11.2 kB 查看哈希值)

上传时间 源代码

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页