• Python包管理工具之间的关系

    了解你需要学习什么东西
    服务器君一共花费 8.664 ms 进行了 2 次数据库查询,努力地为您提供了这个页面。
    广告很萌的

    当前的包管理工具链是 easy_install/pip + distribute/setuptools + distutils, 显得较为混乱。

    而将来的工具链组合非常简单:pip + distutils2。

    1. distutils : Python 自带的基本安装工具,适用于非常简单的应用场景,使用:

    • 为项目创建 setup.py 脚本。
    • 执行 setup.py install 可进行安装。

    2. setuptools : 针对 distutils 做了大量扩展, 尤其是加入了包依赖机制. 在部分 Python 子社区已然是事实上的标准。

    3. distribute : 由于 setuptools 开发进度缓慢,不支持 Python 3,代码混乱,一帮程序员另起炉灶,重构代码,增加功能,希望能够取代 setuptools 并被接纳为官方标准库,他们非常努力,在很短的时间便让社区接受了 distribute。

    4. easy_install : setuptools 和 distribute 自带的安装脚本,也就是一旦 setuptools 或 distribute 安装完毕,easy_install 也便可用。最大的特点是自动查找 Python 官方维护的包源 PyPI,安装第三方 Python 包非常方便。使用:

    • setuptools / distribute 都只是扩展了 distutils。
    • easy_install [PACKAGE_NAME] 自动从 PyPI 查找/下载/安装指定的包。

    5. pip : pip 的目标非常明确 – 取代 easy_install. easy_install 有很多不足:安装事务是非原子操作,只支持 svn,没有提供卸载命令, 安装一系列包时需要写脚本。pip 解决了以上问题,已俨然成为新的事实标准,virtualenv 与它已经成为一对好搭档。使用:

    • 安装: pip install [PACKAGE_NAME]
    • 卸载: pip uninstall [PACKAGE_NAME]
    • 支持从任意能够通过 VCS 或浏览器访问到的地址安装 Python 包

    6. distutils2 : setuptools 和 distribute 的诞生是因为 distutils 的不济,进而导致目前分化的状况。而 Guido 并未接纳 distribute 为官方标准,并说明了原因。开发者在失落之余明确了新的方向和任务 – distutils2,它将成为 Python 3.3 的标准库 packaging,并在其它版本中以 distutils2 的身份出现。换句话说,它和 pip 将联手结束目前混乱的状况。

    7. zc.buildout : 这是一个臃肿的安装、部署系统,在 Zope 社区运用教广,功能强大/繁复但使用场景有限,除非确有需要,不值得投入太多的精力去研究,pip + virtualenv + fabric 的工具链组合更为简单、灵活。

更多 推荐条目

Welcome to NowaMagic Academy!

现代魔法 推荐于 2013-02-27 10:23   

本章最新发布
随机专题
  1. [C语言程序设计] 结构体基本知识 1 个条目
  2. [搜索引擎优化] 与百度权重有关的信息 2 个条目
  3. [智力开发与知识管理] 整体性学习步骤 9 个条目
  4. [PHP程序设计] 对输入文件类型的检测 1 个条目
  5. [Python程序设计] 标准库:urllib/urllib2 14 个条目
  6. [软件工程与项目管理] 浏览器的CSS解析 7 个条目
  7. [PHP程序设计] Nginx基本操作释疑 7 个条目
  8. [移动开发] 刷机与root相关 2 个条目
  9. [软件工程与项目管理] 浏览器与CSS渲染技巧 2 个条目
  10. [PHP程序设计] PHP里的布尔类型 3 个条目
  11. [PHP程序设计] httpd.conf设置相关 3 个条目
  12. [Python程序设计] Python HTTP服务器 7 个条目
窗口 -- [资讯]