Python pip高级用法
1.pip 高级用法
为了便于用户安装和管理第三方库和软件,越来越多的编程语言拥有自己的包管理工 具,如 nodejs 的 npm, ruby 的 gem。 Python 也不例外,现在 Python 生态主流的包管理工 具是 pip。
2.pip 介绍
pip 是一个用来安装和管理 Python 包的工具,是 easy_install 的替代品,如果读者使用 的是 Python 2.7.9+或 Python 3.4+版本的 Python,则已经内置了 pip,无须安装直接使用即 可。 如果系统中没有安装 pip,也可以于动安装,如下所示:
sudo apt-get install python-pip
安装 pip 以后,如果有新的 pip 版本,它也会提示用户进行升级:
pip install -U pip
pip 之所以能够成为最流行的包管理工具,并不是因为它被 Python 官方作为默认的包 管理器,而是因为它自身的诸多优点。 pip 的优点有: D pip 提供了丰富的功能,其竞争对手 easy_install 则只支持安装,没有提供卸载和显 示已安装列表的功能; D pip 能够很好地支持虚拟环境; 口 pip 可以通过 requirements.txt 集中管理依赖; 口 pip 能够处理二进制格式(.whl); D pip 是先下载后安装,如果安装失败,也会清理干净,不会留下一个中间状态。 如果用户没有将软件打包上传到 pypi.python.org,则无法使用 pip 进行安装。 对于这种 情况, Python 生态也有标准的做法,例如,我们尝试从源码安装 paramiko。 需要注意的是, 我们也可以通过 pip 安装 paramiko 的, 这里只是为了演示 Python 生态中源码安装:
$git clone https://github . com/paramil王o/paramiko.git $ cd paramiko $ python setup.py Install
3. pip 常用命令
pip 提供的命令不多,但是都很实用,所以,我们来看一下 pip 提供的所有子命令。
下面以 Flask 为例,来看一下 pip 几个常用的子命令。
I )查找安装包:
pip search flask
2 )安装特定的安装包版本:
pip install flask==0.8
3 )删除安装包:
pip uninstall Werkzeug
4 )查看安装包的信息 :
$ pip show flask
Name : Flask
Version: 0.12
Summary: A microframework based on Werkzeug, J工nja2 and good intentions
Home page: http: //github.com/pallets/flask/
Author: Armin Ronacher
Author-email: armin .ronacher@act工ve-4 . com
License: BSD
Location: /home/lmx/ . pyenv /versions/2. 7 .13 /lib/python2. 7 /site-packages
Requires : click, Werkzeug, Jinja2, itsdangerous
5 )检查安装包的依赖是否完整 :
$ pip check flask Flask 0.12 requires Werkzeug, which is not installed.
6 )查看已安装的安装包列表:
pip list
7 )导出系统已安装的安装包列表到 requirements 文件:
pip freeze > requirements.txt
8 )从 requirements 文件安装:
pip install r requireme口ts.txt
9 )使用 pip 命令补全:
pip completion --bash >~/ .profile $ source ~ I .profile
4.加速 pip 安装的技巧
如果大家使用 Python 的时间比较长的话,会发现 Python 安装的一个问题,即 pypi. python.org 不是特别稳定,有时候会很慢,甚至处于完全不可用的状态。 这个问题有什么好 办法可以解决呢?根据笔者的经验,至少有两种不同的方法。 1. 使用豆瓣或阿里云的源加速软件安装 访问 pypi.python.org 不稳定的主要原因是因为网络不稳定,如果我们从网络稳定的服 务器下载安装包,问题就迎刃而解了。 我们国内目前有多个 pypi 镜像,推荐使用豆瓣的镜 像源或阿里的镜像源。 如果要使用第三方的源,只需要在安装时,通过 pip 命令的-i 选项 指定镜像源即可。 如下所示:
pip install -i ht tps: I /pypi. douban . com/ s 工mple/ flask
每次都要指定镜像源的地址比较麻烦,我们也可以修改 pip 的配置文件,将镜像源写入 配置文件中。 对于 Linux 系统来说,需要创建~/.pip/pip.conf文件,然后在文件中保存如 下内容:
$ cat pip.conf [global) index-url = https : //pypi . douban . com/simple/
2. 将软件下载到本地部署 如果需要对大批量的服务器安装软件包,并且安装包比较多或者比较大,则可以考虑 将软件包下载到本地,然后从本地安装。 这对于使用脚本部署大量的服务器非常有用 ,此 外,对于服务器无法连接外网的情况,也可以使用这种方法。 如下所示:
#下载到本地
pip install download=’pwd’-r requirements.txt
#本地安装
pip install --no-index -f file . / / ’ pwd’-r requirements.txt
使用这种方式,只需要下载一次,就可以多处安装,不用担心网络不稳定的问题。 并 且, pip 能够自动处理软件依赖问题。 例如,我们通过这种方式下载 Flask 到当前目录下, 则 Flask 的依赖 click、 itsdangerous、 Jinja2、 MarkupSafe 和 Werkzeug 也会被下载到本地, 如下所示 :
pip install --download=’pwd ’ flask
$ ls click-6.7-py2 .py3-none-any .whl itsdangerous-0 .24 .tar.gz MarkupSafe-0.23 .tar.gz Flask-0.12-py2 .py3-none-any.whl Jinja2-2.9 .5-py2.py3-none-any.whl Werkzeug-0.11 .15-py2.py3-none-any.whl
Python pip高级用法的更多相关文章
- python requests 高级用法
高级用法 本篇文档涵盖了 Requests 的一些高级特性. 会话对象 会话对象让你能够跨请求保持某些参数.它也会在同一个 Session 实例发出的所有请求之间保持 cookie, 期间使用 url ...
- python 循环高级用法 [expression for x in X [if condition] for y in Y [if condition] ... for n in N [if condition] ]按照从左至右的顺序,分别是外层循环到内层循环
高级语法 除了像上面介绍的 [x ** 2 for x in L] 这种基本语法之外,列表推导式还有一些高级的扩展. 4.1. 带有if语句 我们可以在 for 语句后面跟上一个 if 判断语句,用于 ...
- (转)python requests 高级用法 -- 包括SSL 证书错误的解决方案
我在使用requests访问某个https网站时出现错误 error::SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify fai ...
- python requests 高级用法 -- 包括SSL 证书错误的解决方案
Session Objects会话对象 Session对象在请求时允许你坚持一定的参数.此外,还坚持由Session实例的所有请求的cookie. 让我们坚持在请求时使用 s = requests.S ...
- Python sqlalchemy 高级用法
一. 关联查询 sys_user_list = SysPermission.query.join(OrgRolePermission, OrgRolePermission.sys_permission ...
- Python中第三方库Requests库的高级用法详解
Python中第三方库Requests库的高级用法详解 虽然Python的标准库中urllib2模块已经包含了平常我们使用的大多数功能,但是它的API使用起来让人实在感觉不好.它已经不适合现在的时代, ...
- python接口自动化 - Requests-3 高级用法
高级用法 本篇文档涵盖了 Requests 的一些高级特性. 会话对象 会话对象让你能够跨请求保持某些参数.它也会在同一个 Session 实例发出的所有请求之间保持 cookie, 期间使用 url ...
- 简学Python第七章__class面向对象高级用法与反射
Python第七章__class面向对象高级用法与反射 欢迎加入Linux_Python学习群 群号:478616847 目录: Python中关于oop的常用术语 类的特殊方法 元类 反射 一.P ...
- Python高级用法总结
Python很棒,它有很多高级用法值得细细思索,学习使用.本文将根据日常使用,总结介绍Python的一组高级特性,包括:列表推导式.迭代器和生成器.装饰器. 列表推导(list comprehensi ...
随机推荐
- 普通人学习rust——从零到放弃 变量、不可变量、常量
普通人学习rust--从零到放弃 变量.不可变量.常量 环境 本文章内容基于如下环境,如若出入请参考当前环境. rustc 1.42.0 (b8cedc004 2020-03-09) cargo 1. ...
- Linux - top命令监控列表的详细解析
统计信息区(系统资源信息区) 前五行,即列表上方的五行 第一行:输出系统任务队列信息 18:46:38:系统当前时间 up 2days 1:54:系统开机后到现在的总运行时间 1 user:当前登录用 ...
- Alterations of brain quantitative proteomics profiling revealed the molecular mechanisms of diosgenin against cerebral ischemia reperfusion effects(大脑的定量蛋白质组学揭示了薯蓣皂苷元对脑缺血再灌注效应的分子机制)
文献名:Alterations of brain quantitative proteomics profiling revealed the molecular mechanisms of dios ...
- ImportError: libcusolver.so.8.0: cannot open shared object file: No such file or directory
问题描述: ImportError: libcusolver.so.8.0: cannot open shared object file: No such file or directory 首先检 ...
- 你真的理解 if __name__ == '__main__' 的作用么?
https://blog.csdn.net/Amberdreams/article/details/88382993
- 我们是怎么实现gRPC CodeFirst-生成proto
前言: gRPC默认是ProtoFirst的,即先写 proto文件,再生成代码,需要人工维护proto,生成的代码也不友好,所以出现了gRPC CodeFirst,下面来说说我们是怎么实现gRPC ...
- [LeetCode] 936. Stamping The Sequence 戳印序列
You want to form a `target` string of lowercase letters. At the beginning, your sequence is target.l ...
- OpenCV-Python 理解SVM | 五十五
目标 在这一章中 我们将对SVM有一个直观的了解 理论 线性可分数据 考虑下面的图像,它具有两种数据类型,红色和蓝色.在kNN中,对于测试数据,我们用来测量其与所有训练样本的距离,并以最小的距离作为样 ...
- 从使用到原理,探究Java线程池
什么是线程池 当我们需要处理某个任务的时候,可以新创建一个线程,让线程去执行任务.线程池的字面意思就是存放线程的池子,当我们需要处理某个任务的时候,可以从线程池里取出一条线程去执行. 为什么需要线程池 ...
- javascript创建函数的方法
函数对任何语言来说都是一个核心的概念.函数,是一种封装(将一些语句,封装到函数里面). 通过函数可以封装任意多条语句,而且可以在任何地方.任何时候调用执行. ECMAScript中的函数使用funct ...