Python打包的艺术是一个专题,我将在这个专题里分享自己对构建、管理和发布Python软件包的理解。这个专题
将涉及几个Python模块,他们分别是distutils,setuptools,distribute,pip,virtualenv等。
熟悉Python的人都知道setuptools被人认为是Python distutils库的加强和扩展的合集,它可以让开发者更容易的构建和发布Python软件包,并添加了包的版本化和依赖性管理。而且setuptools还可以将你开发的Python模块打包成一个后缀为“.egg”的文件,用于发布和安装。因为setuptools是基于distutils的,所以完全兼容用distutils构建的包。
提到setuptools,我们不得不提easy_install,Distribute和pip。那么三个工具又是做什么的的呢们和setuptools之间又有什么关系呢/span>
easy_install其实就是绑定在setuptools里的一个模块,让开发者可以自动的下载,构建,安装和管理Python软件包。我们完全可以把它看做是调用setuptools的一个命令。有了这个命令我们就可以自如的使用setuptools的功能。
Distribute则是从setuptools分支(fork)出来的一个项目,目的是为了替换setuptools作为Python模块发布的标准方法。
不过要注意的是Distribute是setuptools的drop-in(嵌入式)替代品。也就是说Distribute到某个时候会merge回到setuptools
里。在setuptools 0.7, Distribute就被merge进入到了setuptools,现在setuptools最新的版本已是1.0。
pip可以被认为是easy_install的超级加强版。它不再绑定到setuptools,是个独立的项目,但是它也依然依赖于setuptools。
下面的图诠释了它们过去,现在和未来的关系。
Reference:
setuptools:
Project Page: https://bitbucket.org/pypa/setuptools
Documentation: https://pythonhosted.org/setuptools/index.html
distribute:
Project Page: https://bitbucket.org/tarek/distribute/wiki/Home
Documentation: http://pythonhosted.org/setuptools/
pip:
Project Page: https://github.com/pypa/pip
Install howto: http://www.pip-installer.org/en/latest/installing.html
文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树首页概览208261 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!