pip;python包管理工具

http://blog.csdn.net/shanliangliuxing/article/details/10114911

转自:http://jiayanjujyj.iteye.com/blog/1409819

刚开始学习Python时,在看文档和别人的blog介绍安装包有的用easy_install, setuptools, 有的使用pip,distribute,那麽这几个工具有什么关系呢,看一下下面这个图就明白了

可以看到distribute是setuptools的取代,pip是easy_install的取代。

关于这些包工具可以参考 http://guide.python-distribute.org/installation.html#installing-pip

下面简单的介绍一下:

Distribute是对标准库disutils模块的增强,我们知道disutils主要是用来更加容易的打包和分发包,特别是对其他的包有依赖的包。

Distribute被创建是因为Setuptools包不再维护了。

安装Distribute

可以通过distribute_setup.py 脚本来安装Distribute,也可以通过easy_install, pip,源文件来安装,不过使用distribute_setup.py来安装是最简单和受欢迎的方式

$ curl -0 http://python-distribute.org/distribute_setup.py
$ sudo python distribute_setup.py

Pip 是安装python包的工具,提供了安装包,列出已经安装的包,升级包以及卸载包的功能。

Pip 是对easy_install的取代,提供了和easy_install相同的查找包的功能,因此可以使用easy_install安装的包也同样可以使用pip进行安装。

安装Pip

Pip的安装可以通过源代码包,easy_install或者脚本。

下面介绍一下各种安装方法:

源代码方式:

$ wget http://pypi.python.org/packages/source/p/pip/pip-0.7.2.tar.gz (替换为最新的包)
$ tar xzf pip-0.7.2.tar.gz
$ cd pip-0.7.2
$ python setup.py install

easy_install:

$ easy_install pip

get_pip.py 脚本:

$ curl -0 https://raw.github.com/pypa/pip/master/contrib/get-pip.py
$ sudo python get-pip.py

OK, 下面来看一下Pip的使用

安装package

$ pip install Markdown

列出安装的packages

$ pip freeze

安装特定版本的package

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

$ pip install 'Markdown<2.0'
$ pip install 'Markdown>2.0,<2.0.3'

升级包

升级包到当前最新的版本,可以使用-U 或者 --upgrade

$ pip install -U Markdown

卸载包

$ pip uninstall Markdown

查询包

pip search "Markdown"

PS -- 包安装后的py文件路径:/usr/local/lib/python2.7/dist-packages

转自:http://www.yeolar.com/note/2012/08/18/setuptools-pip-virtualenv/

几个Python配置工具简介:setuptools、pip、virtualenv

本篇快速总结几个Python的常见配置工具,包括setuptools、pip、virtualenv。

setuptools

setuptools管理Python的第三方包,将包安装到site-package下,安装的包后缀一般为.egg,实际为ZIP格式。默认从 http://pypi.python.org/pypi 下载包,能够解决Python包的依赖关系。

安装了setuptools之后即可用 easy_install 命令安装包,有多种安装方式可以选择。

<span class="gp" style="margin: 0px; padding: 0px;">#</span> easy_install PACKAGE          <span class="c" style="margin: 0px; padding: 0px;"># 普通安装
</span><span class="gp" style="margin: 0px; padding: 0px;">#</span> easy_install /home/yeolar/pkg/PACKAGE.egg <span class="c" style="margin: 0px; padding: 0px;"># 从本地或网络文件系统中安装
</span><span class="gp" style="margin: 0px; padding: 0px;">#</span> easy_install http://trac-hacks.org/svn/iniadminplugin/0.11/ <span class="c" style="margin: 0px; padding: 0px;"># 从指定的下载路径安装
</span><span class="gp" style="margin: 0px; padding: 0px;">#</span> easy_install http://pypi.python.org/simple/PACKAGE/PACKAGE-0.1.2.4.tar.gz <span class="c" style="margin: 0px; padding: 0px;"># 从URL源码包安装,条件是PACKAGE-0.1.2.4.tar.gz包中的根目录中必须包括setup.py文件
</span><span class="gp" style="margin: 0px; padding: 0px;">#</span> easy_install -f http://pypi.python.org/simple/ PACKAGE <span class="c" style="margin: 0px; padding: 0px;"># 从web上面搜索包,并自动安装
</span><span class="gp" style="margin: 0px; padding: 0px;">#</span> easy_install <span class="nv" style="margin: 0px; padding: 0px;">PACKAGE</span><span class="o" style="margin: 0px; padding: 0px;">==</span>0.1.2.1 <span class="c" style="margin: 0px; padding: 0px;"># 指定包的版本,如果指定的版本高于现已安装的版本就是升级了
</span><span class="gp" style="margin: 0px; padding: 0px;">#</span> easy_install -U PACKAGE       <span class="c" style="margin: 0px; padding: 0px;"># 升级到最新版本,不指定版本就会升级到最新版本
</span><span class="gp" style="margin: 0px; padding: 0px;">#</span> easy_install -U <span class="nv" style="margin: 0px; padding: 0px;">PACKAGE</span><span class="o" style="margin: 0px; padding: 0px;">==</span>0.1.2.2 <span class="c" style="margin: 0px; padding: 0px;"># 升级到指定版本
</span><span class="gp" style="margin: 0px; padding: 0px;">#</span> easy_install -m PACKAGE       <span class="c" style="margin: 0px; padding: 0px;"># 卸载包,卸载后还要手动删除遗留文件</span>

pip

pip也是一个包管理工具,它和setuptools类似,如果使用virtualenv,会自动安装一个pip。

<span class="gp" style="margin: 0px; padding: 0px;">#</span> pip install PACKAGE           <span class="c" style="margin: 0px; padding: 0px;"># 安装包
</span><span class="gp" style="margin: 0px; padding: 0px;">#</span> pip -f URL install PACKAGE    <span class="c" style="margin: 0px; padding: 0px;"># 从指定URL下载安装包
</span><span class="gp" style="margin: 0px; padding: 0px;">#</span> pip -U install PACKAGE        <span class="c" style="margin: 0px; padding: 0px;"># 升级包</span>

virtualenv

virtualenv是一个Python环境配置和切换的工具,可以用它配置多个Python运行环境,和系统中的Python环境隔离,即所谓的沙盒。沙盒的好处包括:

  1. 解决库之间的版本依赖,比如同一系统上不同应用依赖同一个库的不同版本。
  2. 解决权限限制,比如你没有 root 权限。
  3. 尝试新的工具,而不用担心污染系统环境。
<span class="gp" style="margin: 0px; padding: 0px;">$</span> virtualenv py-for-web

这样就创建了一个名为py-for-web的Python虚拟环境,实际上就是将Python环境克隆了一份。然后可以用source py-for-web/bin/activate 命令来更新终端配置,修改环境变量。接下来的操作就只对py-for-web环境产生影响了,可以使用 pip 命令在这里安装包,当然也可以直接安装。

<span class="gp" style="margin: 0px; padding: 0px;">$</span> <span class="nb" style="margin: 0px; padding: 0px;">source </span>py-for-web/bin/activate    <span class="c" style="margin: 0px; padding: 0px;"># 启用虚拟环境
</span><span class="gp" style="margin: 0px; padding: 0px;">$</span> deactivate                        <span class="c" style="margin: 0px; padding: 0px;"># 退出虚拟环境</span>

有个virtualenv-sh包,对virtualenv做了一些终端命令的增强。安装之后,在~/.bashrc中添加配置:

. /usr/local/bin/virtualenv-sh.bash

它提供的几个常用的命令如:

mkvirtualenv <env_name>     在$WORKON_HOME创建虚拟环境
rmvirtualenv <env_name>     删除虚拟环境
workon [<env_name>]         切换到虚拟环境
deactivate                  退出虚拟环境
lsvirtualenvs               列出全部的虚拟环境
cdvirtualenv [subdir]       进入虚拟环境的相应目录

$WORKON_HOME 的默认值为 ${HOME}/.virtualenvs 。

链接: http://www.yeolar.com/note/2012/08/18/setuptools-pip-virtualenv/

转自:http://www.cnblogs.com/PandaBamboo/p/3180568.html

Python札记 -- 使用easy_install进行模块/包管理

今天在阅读以前项目代码时,发现里面使用的第三方模块的参数相当诡异,总是对不上。经过分析之后,发现是自己安装的第三方模块跟项目使用的版本不一致。在Python中进行模块/包管理的话,就不得不提到easy_install了,它的好处,“谁用谁知道”啊!!!

一、安装easy_install

请各位到 http://pypi.python.org/pypi/setuptools 选择适合自己的安装包,我选择的是setuptools 0.6c11,另外竹风使用的是64位的Python,所以下载了 ez_setup.py 自行安装。文档里说得很清楚。安装完成后,easy_install 会被添加进环境变量中。比如在竹风的 CentOS 上,可以直接在命令行输入 "easy_install -h" 来查看相关帮助了。

二、使用easy_install安装第三方模块/包

操作相当简单,比如竹风现在想安装 tornado 的话,只需要输入"easy_install torando"即可。
    值得注意的是,上面这种情况默认安装的是 https://pypi.python.org/pypi 提供的最新版本,这在某些情况下会引发些不必要的疑惑。
    依旧以tornado为例,pypi 现在提供的版本为3.1,但是竹风阅读的项目使用的是2.2.1,这两个版本之间的差别还是相当多的。
    幸好 easy_install 提供了安装指定版本的功能,比如"easy_install tornado==2.2.1" 就能安装tornado 2.2.1了。

三、easy_install内部如何管理

easy_install对于第三方模块/包的安装路径,默认是Python的 site-packages ,比如竹风的是 /usr/lib/python2.6/site-packages 。大家可以在该目录下找到 easy-install.pth 文件。该文件里面记录了使用easy_install安装的模块/包。而且能从这个文件中判断出当前使用的模块/包的版本。以竹风的easy-install.pth为例:

1 $ cat easy-install.pth
2 import sys; sys.__plen = len(sys.path)
3 ./setuptools-0.6c11-py2.6.egg
4 ./configobj-4.7.2-py2.6.egg
5 ./redis-2.7.2-py2.6.egg
6 ./tornado-2.2.1-py2.6.egg
7 import sys; new=sys.path[sys.__plen:]; del sys.path[sys.__plen:]; p=getattr(sys,'__egginsert',0); sys.path[p:p]=new; sys.__egginsert = p+len(new)

从文件信息中,可以发现目前已经安装的模块/包,以及相关的版本信息。

四、卸载模块/包

easy_install当然也提供了卸载模块/包的功能。但是必须要注意的是,该模块/包必须要在 easy-install.pth 有相关信息,换句话说,也就是要使用easy_install安装的,才可进行卸载。命令如下: "easy_install -m redis",这样就会将Python中的redis模块卸载。

五、安装的模块/包是egg文件?

在安装第三方模块/包的时候,有可能会发现安装的是一个egg文件,比如“redis-2.7.2-py2.6.egg”。对于好学的程序猿们,想看它的源代码该怎么办呢?相当简单,只需要执行以下unzip就可以了,"unzip redis-2.7.2-py2.6.egg"就可以把源代码解出来。

六、easy_install的其他参数

本文篇幅有限,并不能对easy_install的所有参数进行一一介绍。对照下图,大家可以自行琢磨其他参数的使用方法:

比较值得一提的是 “-d” 参数,可以指定安装目录。这个对于测试是很方便的。比如可以新建一个tmp目录,在里面安装一些模块/包进行测试(此时在tmp目录中也会生成一个easy_install.pth文件,个人推测easy_install在运行时会将所有的pth文件够过一次)。当测试完毕后,只需要将tmp目录删除。

当然还有 "-z" 和 "-Z",总是打包成zip文件 or 总是解压。

希望本文对大家有所帮助^_^

Python pip distribute相关推荐

  1. Python pip安装第三方库的国内镜像

    Python pip 安装第三方库的国内镜像 Windows系统下,一般情况下使用pip在DOS界面安装python第三方库时,经常会遇到超时的问题,导致第三方库无法顺利安装,此时就需要国内镜像源的帮 ...

  2. python pip 换源

    python pip 换源 # coding: utf-8 import platform import osdef change_source(sourch_path, sourch_host):& ...

  3. python pip安装解决方法

    python pip安装解决方法 参考文章: (1)python pip安装解决方法 (2)https://www.cnblogs.com/nykuo/p/11294297.html 备忘一下.

  4. Python PIP Install throws TypeError: unsupported operand type(s) for -=: 'Retry' and 'int'

    Python PIP Install throws TypeError: unsupported operand type(s) for -=: 'Retry' and 'int'

  5. python命令大全下载-Python pip 常用命令汇总

    使用了这么就pip命令,但是一直是简单使用,很多命令都是用了查,查了用,今天把常用的命令汇总一下,方便使用. 命令: pip 由上图可以看到 pip 支持一下命令 Commands: install ...

  6. python常用命令大全-Python pip 常用命令汇总

    使用了这么就pip命令,但是一直是简单使用,很多命令都是用了查,查了用,今天把常用的命令汇总一下,方便使用. 命令: pip 由上图可以看到 pip 支持一下命令 Commands: install ...

  7. python更新pip失败-解决Python pip 自动更新升级失败的问题

    在使用python pip的时候,经常会发生pip版本过低导致失败的情况,这时候,系统会提示让你使用如下命令对pip进行升级更新: python -m pip install --upgrade pi ...

  8. python pip 安装与使用_Python pip 安装与使用(安装、更新、删除)

    pip 是 Python 包管理工具,该工具提供了对Python 包的查找.下载.安装.卸载的功能. pip检测更新 命令:pip list –outdated pip升级包 命令:pip insta ...

  9. linux查看python pip 安装包列表和安装路径

    查看linux下python已经安装的第三方库列表 python list 查看python pip 包的安装路径 pip show six PS:有定制开发.答疑需求,可以QQ联系:17620165 ...

最新文章

  1. yum报错Error: Cannot retrieve repository metadata (repomd.xml) for repository: rhel-source
  2. 团队-象棋游戏-开发文档
  3. 【maven】 pom.xml内容没有错,但一直报错红叉 解决办法
  4. 第六代微型计算机是,AMD Carrizo第六代A系列处理器技术解析
  5. Learning Modern 3D Graphics Programming笔记
  6. 附件 广东省教育系统火灾风险点指南(试行)
  7. 116. cURL 简介(2)
  8. 双极性根升余弦信号qpsk_基于CCSDS协议的中频信号源设计与实现
  9. [RTOS]uCOS、FreeRTOS、RTThread、RTX等RTOS的对比之特点
  10. 微机原理——8255A的编程
  11. VS2017安装教程
  12. 【OS学习笔记】二 汇编语言和汇编软件
  13. 自定义View显示超大图片
  14. AIX 6:新特性概述
  15. java基本数据类型 byte、short、int、long、float、double、char的范围和运算中注意的事项(详细)
  16. 标准正态分布alpha分位点
  17. Delos和EDGE Technologies携手推进智能健康建筑管理系统
  18. 学会给视频添加渐入、色彩变幻特效,简单几步骤做创意小视频
  19. cname解析教程_实战!CloudFlare使用CNAME解析并添加SSL教程
  20. web系统维护时显示维护状态页面

热门文章

  1. 超级计算机燕 排名,正文 第一卷 六年之前 HK171 舍弃的超级计算机燕? (485加更)...
  2. window.print()+layer.open()——实现打印A4纸张内容的功能——功能实现
  3. 做互联网产品运营的一点心得
  4. c35是什么意思_混凝土C35P6是什么意思
  5. 利用空闲服务器搭建frps服务端-实现穿透代理
  6. 为什么毕业后五年,你们的贫富差距越拉越大
  7. python自动排课表_LeetCode 207. 课程表 | Python
  8. 财务考PMP有用吗?
  9. Golang编码规范
  10. LeCo-1482.制作 m 束花所需的最少天数