pip使用Setuptools,不需要对软件包进行任何更改。它实际上使用Setuptools安装软件包,使用:
python -c 'import setuptools; __file__="setup.py"; execfile(__file__)' install --single-version-externally-managed
因为它使用该选项(
--single-version-externally-managed),所以它永远不会将egg作为zip文件安装,不支持同时安装的多个软件版本,并且这些软件包是平面安装的(就像
pythonsetup.pyinstall仅使用distutils时的作品一样)。Egg元数据仍已安装。pip也像easy_install一样下载并安装软件包的所有要求。
此外,
您还可以使用需求文件来添加应成批安装的其他软件包,并使版本需求更加精确(而不必在
setup.py文件中放置那些确切的需求)。但是,如果您不制作需求文件,则可以像easy_install一样使用它。
对于您来说,
install_requires我不建议进行任何更改,除非您一直试图创建非常好的要求,而这些要求被认为是很好的。我认为在
setup.py有关版本的文件中可以有效使用的精确度是有限制的,因为您无法真正知道新库的未来兼容性如何,并且我不建议您尝试预测这种情况。需求文件是布置保守版本需求的替代位置。
您仍然可以使用
python setup.py develop,实际上,如果您这样做了
pip install -esvn+http://mysite/svn/Project/trunk#egg=Project,它将签出(放入
src/project)并
setup.pydevelop在其上运行。因此,工作流程并没有什么不同。
如果您冗长地运行pip(如
pip install -vv),您会看到很多正在运行的命令,并且您可能会识别其中的大多数命令。



