我正在为我正在编写的Python包开发一个发行版,所以我可以在PyPI上发布它 . 这是我第一次使用distutils,setuptools,distribute,pip,setup.py以及所有这些,而且我的学习曲线比我预期的要陡峭得多:)
通过在setup.py中的 data_files 参数中指定它们来将我的一些测试数据文件包含在tarball中,我遇到了一些麻烦,直到我在这里遇到一个指向 MANIFEST.in 文件的不同帖子 . 就在这时,我突然想到你在tarball / zip中包含的内容(使用MANIFEST.in)以及在用户的Python环境中安装easy_install或其他内容(根据你在 setup.py 中指定的内容)安装的内容是两个非常不同的事情;一般来说,tarball中存在的内容比实际安装的要多得多 .
这立刻引发了我的代码味道,并意识到必须有一个以上的分发用例;我已经注意到了我真正参与过的唯一一个,使用easy_install或pip来安装库 . 然后我意识到我正在开发工作产品,我对我正在开发的最终用户只有部分了解 .
所以我的问题是:“除了在一个Python环境中安装Python发行版之外,Python发行版的用例是什么?我还在为这个发行版提供服务以及他们最关心的是什么?”
以下是我还没有想到的一些工作问题:
在源代码分发中包含源代码控制(git)下的所有内容是否合理?在github时代,是否有人下载源代码分发以访问完整的项目源?或者我应该发布一个链接到我的github回购?不会包含所有内容会使分发变得臃肿,并且只需要安装它的人就可以下载更长的时间吗?
我将在readthedocs.org上主持文档 . 在源代码分发中包含HTML版本的文档对我有意义吗?
有没有人使用 python setup.py test 在源代码分发上运行测试?如果是这样,他们扮演什么角色,他们处于什么样的境地?我不知道我是否应该为完成这项工作而烦恼,如果我这样做,是谁让它起作用 .