我最近在互联网上看到了大量的 setuptools。最近,我阅读了 James Bennett 的关于为什么没有人应该使用 setuptools的关于包装的帖子。从我在 Freenode 上的#python 开始,我就知道那里有一些人绝对讨厌它。我会把自己算在其中,但我确实使用它。
我已经将 setuptools 用于足够多的项目以了解它的不足之处,我更喜欢更好的东西。我不是特别喜欢 egg 格式及其部署方式。对于所有 setuptools 的问题,我还没有找到更好的选择。
我对pip之类的工具的理解是,它是一个 easy_install 替代品(而不是 setuptools)。事实上,pip 使用了一些 setuptools 组件,对吧?
我的大多数包都使用了 setuptools-aware setup.py,它声明了所有依赖项。当它们准备好后,我将构建一个 sdist、bdist 和 bdist_egg,并将它们上传到 pypi。
如果我想切换到使用 pip,我需要进行哪些更改才能摆脱 easy_install 依赖项?依赖项在哪里声明?我猜我需要摆脱使用 egg 格式,而只提供源代码分发。如果是这样,我如何生成 egg-info 目录?还是我什至需要?
这将如何改变我对 virtualenv 的使用?virtualenv 不使用 easy_install 来管理环境吗?
这将如何改变我对 setuptools 提供的“开发”命令的使用?我不应该使用它吗?有什么选择?
我基本上是想了解我的开发工作流程会是什么样子。
在任何人建议之前,我并不是在寻找依赖于操作系统的解决方案。我主要关心 debian linux,但 deb 包不是一个选项,原因是 Ian Bicking在这里概述。