【发布时间】:2011-12-02 01:11:23
【问题描述】:
我正在编写一个新的 python 包以供其他人使用。为了演示它应该如何使用,我正在编写一个演示脚本来执行新包的主要部分。
这样做的惯例是什么,以便其他人可以轻松找到脚本?它应该是一个单独的模块(用什么名称)?它应该位于包的根目录中吗?出包了吗?在__init__.py?
【问题讨论】:
标签: python package main demo convention
我正在编写一个新的 python 包以供其他人使用。为了演示它应该如何使用,我正在编写一个演示脚本来执行新包的主要部分。
这样做的惯例是什么,以便其他人可以轻松找到脚本?它应该是一个单独的模块(用什么名称)?它应该位于包的根目录中吗?出包了吗?在__init__.py?
【问题讨论】:
标签: python package main demo convention
它应该是一个单独的模块(用什么名称)?
demo/some_useful_name.py
演示目录包含演示脚本。同样,一个测试目录包含你所有的单元测试。
它应该位于包的根目录中吗?
没有。它不是包装的一部分。这是一个演示。
包装好了吗?
是的。
在 init.py 中?
从不。
一个包有两个生命。 (1) 作为卸载源,(2) 在 lib/site-packages 作为安装代码。
“源”应包括 README、setup.py、演示目录、测试目录和包本身。
顶级“源”setup.py 应该只安装包。演示和测试未安装。作为下载的一部分,它们会被抛在后面。
【讨论】:
我从未见过任何真正的约定,但我个人将它放在__init__.py 内的主要哨兵中,以便可以通过python -m somepackage 调用它。
【讨论】:
python -m somemodule --demo。这在添加其他执行模式时会保持一致,例如运行所有测试。