【发布时间】:2010-09-26 23:40:51
【问题描述】:
我最近在互联网上看到了大量的 setuptools。最近,我阅读了 James Bennett 的 On packaging 帖子,其中介绍了为什么没有人应该使用 setuptools。从我在 Freenode 上的#python 开始,我就知道那里有一些人绝对讨厌它。我会把自己算在其中,但我确实使用它。
我已经在足够多的项目中使用了 setuptools,以了解它的不足之处,我更喜欢更好的东西。我不是特别喜欢 egg 格式及其部署方式。对于 setuptools 的所有问题,我还没有找到更好的选择。
我对@987654322@ 之类的工具的理解是,它是一个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 概述了here。
【问题讨论】:
-
setuptools、distutils、distutils2、pip的一些历史,和朋友讨论here。
标签: python packaging setuptools pip