【发布时间】:2013-01-04 09:44:19
【问题描述】:
我正在为我正在编写的 Python 包开发一个发行版,以便发布 它在 PyPI 上。这是我第一次使用 distutils、setuptools、distribute、 pip,setup.py 和所有这些,我在学习曲线上有点挣扎 这比我预期的要陡峭:)
我在获取一些测试数据文件时遇到了一些问题
通过在 setup.py 中的 data_files 参数中指定它们来包含在 tarball 中,直到我在这里遇到另一个指向我的帖子
朝向MANIFEST.in 文件。就在那时我突然想到你是什么
包含在 tarball/zip 中(使用 MANIFEST.in)以及安装在
用户在执行 easy_install 或其他操作时的 Python 环境(基于
你在setup.py) 中指定的是两个非常不同的东西;一般来说有
tarball 中的内容比实际安装的要多得多。
这立即引发了我的代码气味,并意识到那里 一个发行版必须有多个用例;我一直专注于 只有一个我真正参与过,使用easy_install或pip安装一个 图书馆。然后我意识到我正在开发工作产品,而我只有一个 对我为之开发的最终用户有部分了解。
所以我的问题是:“Python 发行版的用例是什么? 除了将它安装在一个人的 Python 环境中?我还为谁服务 有了这个分布,他们最关心什么?”
以下是一些我尚未弄清楚的工作问题,这些问题与 答案:
包含受源代码控制的所有内容是否明智? (git) 在源代码分发中? github时代,有没有人下载 获取完整项目源代码的源代码分发?或者我应该 只是发布我的 github 存储库的链接?不会包括一切膨胀的 分发并让只想下载的人花费更长的时间 安装它?
我将在 readthedocs.org 上托管文档。它是否使任何 我觉得在源代码中包含文档的 HTML 版本 分布?
是否有人使用
python setup.py test在源上运行测试 分配?如果是这样,他们扮演什么角色,他们处于什么情况?一世 不知道我是否应该费心去做这项工作,如果我这样做了,该做谁 它的工作原理。
【问题讨论】:
标签: python pip setuptools distutils distribute