python包管理工具总结

来源:互联网 发布:单页seo卖产品 编辑:程序博客网 时间:2024/06/05 11:00

常见的包管理工具包括distutils,setuptools,pip,virtualenv。

一 、distutils - 

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

  通过distutils来打包,生成安装包,安装python包等工作,需要编写名为setup.py python脚本文件。如下代码:

  from distutils.core import setup setup( name = "testpackage", version = "1.0", description = "Distutils sample distribution testpackage", packages = ['TestPackage'] )

  通过上述代码可以进行打包或生成安装文件,并能进行安装

  1.打包:python setup.py sdist

  2.安装:python setup.py install

  3.windows下安装文件exe(在windows下才能生效):python setup.py bdist_wininst

  4.linux下rpm安装文件(在有rpm环境下才能生效):python setup.py sdist_rpm

  进行打包,和生成Windows下可执行文件后,如下图所示:

  298x180
生成了zip包和exe的可执行包,这时就可以通过解开zip包后用python setyp.py install来安装,或者在Windows下直接双击安装。安装完后会在%python_home%\Lib\site-packages下多出此安装包,你就可以爽爽地使用了。


二 、setuptools - 

针对 distutils 做了大量扩展, 尤其是加入了包依赖机制。不支持python3,安装完setuptools后会有easy_install


三 、distribute - 

类似于setuptools,支持python3,安装完distribute后会有easy_install。


四 、easy_install - 

注:只用于安装包,不用于打包。

setuptools 和 distribute 自带的安装脚本, 也就是一旦setuptools或distribute安装完毕, easy_install 也便可用了在%python_home%\Scripts下会有对应的可执行文件,如easy_install.exe,最大的特点是自动查找 Python 官方维护的包源 PyPI , 安装第三方 Python 包非常方便。

  文档:

  easy_install 包名==版本号 安装第三方包

  easy_install --help 来查看命令详情


五、 pip - 

注:只用于安装包,不用于打包。

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

  使用:

  安装: pip install [PACKAGE_NAME]  

  升级:pip install -U [PACKAGE_NAME]  

  卸载: pip uninstall [PACKAGE_NAME]

  查询包: pip search [PACKAGE_NAME]

  列出安装的包及其版本:pip freeze

  查看帮助:pip help

  通过使用==, >=, <=, >, <来指定一个版本号

  下载地址:通过python setup.py install来安装,通过pip --version来查看版本。


六、 virtualenv - 

用来创建隔离的python环境,处理python环境的多版本和模块依赖。在默认安装下virtualenv安装的是setuptools而不是distribute,如果想安装distribute需要使用--distribute参数:python virtualenv.py --distribute。

  安装完后在python_home的scripts目录下有virtualenv.exe可执行文件,使用virtualenv mysite,创建新的python环境mysite,并且已有pip和easy_install。

  virtualenv [OPTIONS] DEST_DIR

  --version显示当前版本号。

  -h, --help显示帮助信息。

  -v, --verbose显示详细信息。

  -q, --quiet不显示详细信息。

  -p PYTHON_EXE, --python=PYTHON_EXE指定所用的python解析器的版本,比如 --python=python2.5 就使用2.5版本的解析器创建新的隔离环境。 默认使用的是当前系统安装(/usr/bin/python)的python解析器

  --clear清空非root用户的安装,并重头开始创建隔离环境。

  --no-site-packages令隔离环境不能访问系统全局的site-packages目录。

  --system-site-packages令隔离环境可以访问系统全局的site-packages目录。

  --unzip-setuptools安装时解压Setuptools或Distribute

  --relocatable重定位某个已存在的隔离环境。使用该选项将修正脚本并令所有.pth文件使用相当路径。

  --distribute使用Distribute代替Setuptools,也可设置环境变量VIRTUALENV_DISTRIBUTE达到同样效要。

  --extra-search-dir=SEARCH_DIRS用于查找setuptools/distribute/pip发布包的目录。可以添加任意数量的–extra-search-dir路径。

  --never-download禁止从网上下载任何数据。此时,如果在本地搜索发布包失败,virtualenv就会报错。

  --prompt==PROMPT定义隔离环境的命令行前缀。


总结:

disutils、setuptools、distribute属于一类,都是一组工具集,用于打包和安装包。

easy_install和pip属于一类,用于安装包,它在disutils的基础上增加了自动识别包依赖。

0 0
原创粉丝点击