学习Python的时候,被Python的各种包管理工具搞的眼花缭乱。
通常经常会看到以下几种:
distutils 、distribute、setuptools、easy_install、pip
它们各有不同的适用场景及安装使用方式,现在把有关它们的相关知识整理以一下,以便对Python不同的包管理方式有更清晰的认识。
一、distutils
Python自带的包管理工具,是标准库的一部分。distutils包含一个setupt.py 文件,通过执行setupt.py 进行安装包及打包的操作:
python setup.py install #安装包
python setup.py sdist #发布包
二、setuptools 、distribute
setuptools 是一个为了增强 distutils 而开发的集合,它包含了 easy_install
这个工具。
ez_setup.py 是 setuptools 的安装工具。ez
就是 easy
的缩写。
简单的说,setuptools 是一个项目的名称,是基础组件。而 easy_install
是这个项目中提供的工具,它依赖基础组件工作。
distribute 是 setuptools 的一个分支版本。分支的原因可能是有一部分开发者认为 setuptools 开发太慢了。但现在,distribute 又合并回了 setuptools 中。因此,我们可以认为它们是同一个东西。事实上,如果你查看一下 easy_install
的版本,会发现它本质上就是 distribute 。
三、easy_install
setuptools 和 distribute 自带的安装脚本,setuptools 或 distribute安装完后, easy_install便可使用
四、pip
pip 是目前 python 包管理的事实标准,用来取代 easy_install
安装:
wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py
python get-pip.py
或:
sudo apt-get install python-pip
五、PyPI
官方介绍:
The Python Package Index (PyPI) is a repository of software for the Python programming language.
PyPI 是Python的包仓库。
安装包:
pip install 'SomeProject'