python 有多种类型的包工具
Distutils:Python 标准的包管理工具,扩展性不够。
Setuptools:比 Distutils 提供了更多的功能,虽然不是官方的,但却是事实上的标准。
~~Distribute:是 Setuptools 的一个分支,目前已经退出了历史舞台。~~
~~Distutils2:又一个被废弃的标准。~~
这些工具本来就是 Python 的一个包,如果开发者想编写、发布一个包,必须基于这些包进行开发。
发布的包有三种类型
tar.gz
egg
whell
开发者可以基于 Distutils 或 Setuptools 生成这三种类型的包。
安装包
(1)源码安装
可以手动下载第三方包,然后手动安装。
$ wget "/ywdblogmath-0.1.tar.gz"
$ tar xvf ywdblogmath-0.1.tar.gz
$ cd ywdblogmath-0.1/
$ python setup.py install
安装或更新文件如下:
/usr/local/lib/python2.7/dist-packages/easy-install.pth
/usr/local/lib/python2.7/dist-packages/ywdblogmath-0.1-py2.7.egg
某些被安装的包可能包含 C 代码,所以需要 gcc 这样的工具编译。
(2)easy_install
如果想要使用 easy_install 安装第三方包,需要先安装 setuptools,如果本机没有安装,可以采用源码方式安装,比如:
# 下载 .zip 包
$ python setup.py install
easy_install 支持从 Pypi(tar.gz或egg包)、URL、本地目录安装软件包:
# 从 Pypi 安装最新的包,可能是 tar.gz 或 egg 包
$ easy_install ywdblogmath
# 安装 tar.gz 类型的包
$ easy_install "https://files.pythonhosted.org/packages/96/66/43e6df87373557553be2b4343db27d008c6dcefa110ccff38cba1459ca07/ywdblogmath-0.1.tar.gz"
# 安装 egg 包
# easy_install "/ywdblogmath-0.3-py2.7.egg"
# 本地目录包含 ywdblogmath 的源码
$ easy_install /root/python
如果安装的是一个 tar.gz 或 egg 的压缩包,安装后会出现相关文件,如下:
/usr/local/lib/python2.7/dist-packages/easy-install.pth(文件更新)
/usr/local/lib/python2.7/dist-packages/ywdblogmath-0.1-py2.7.egg(文件新增)
特别说明:
easy_install 只能安装包,不能卸载包。
easy_install 不能安装 wheel 格式的包(pip 可以,但 pip 不能安装 egg 格式的包)
(3)pip
如果本机没有安装 pip,可以使用 easy_install 工具安装。
pip 常用命令:
$ pip list
$ pip install ywdblogmath
$ pip install ywdblogmath -U
$ pip show ywdblogmath
安装 tar.gz 包:
$ pip install "/ywdblogmath-0.1.tar.gz"
安装后会出现相关文件,如下:
/usr/local/lib/python2.7/dist-packages/ywdblogmath(新增目录)
/usr/local/lib/python2.7/dist-packages/ywdblogmath-0.1-py2.7.egg-info(新增文件)
安装 wheel 包:
$ pip install "3da07dfdb949cd6d3e/ywdblogmath-0.4-py2-none-any.whl"
安装后会出现相关文件,如下:
/usr/local/lib/python2.7/dist-packages/ywdblogmath (新增目录)
/usr/local/lib/python2.7/dist-packages/ywdblogmath-0.4.dist-info(新增文件)