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高级用法的更多相关文章

  1. python requests 高级用法

    高级用法 本篇文档涵盖了 Requests 的一些高级特性. 会话对象 会话对象让你能够跨请求保持某些参数.它也会在同一个 Session 实例发出的所有请求之间保持 cookie, 期间使用 url ...

  2. 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 判断语句,用于 ...

  3. (转)python requests 高级用法 -- 包括SSL 证书错误的解决方案

    我在使用requests访问某个https网站时出现错误  error::SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify fai ...

  4. python requests 高级用法 -- 包括SSL 证书错误的解决方案

    Session Objects会话对象 Session对象在请求时允许你坚持一定的参数.此外,还坚持由Session实例的所有请求的cookie. 让我们坚持在请求时使用 s = requests.S ...

  5. Python sqlalchemy 高级用法

    一. 关联查询 sys_user_list = SysPermission.query.join(OrgRolePermission, OrgRolePermission.sys_permission ...

  6. Python中第三方库Requests库的高级用法详解

    Python中第三方库Requests库的高级用法详解 虽然Python的标准库中urllib2模块已经包含了平常我们使用的大多数功能,但是它的API使用起来让人实在感觉不好.它已经不适合现在的时代, ...

  7. python接口自动化 - Requests-3 高级用法

    高级用法 本篇文档涵盖了 Requests 的一些高级特性. 会话对象 会话对象让你能够跨请求保持某些参数.它也会在同一个 Session 实例发出的所有请求之间保持 cookie, 期间使用 url ...

  8. 简学Python第七章__class面向对象高级用法与反射

    Python第七章__class面向对象高级用法与反射 欢迎加入Linux_Python学习群  群号:478616847 目录: Python中关于oop的常用术语 类的特殊方法 元类 反射 一.P ...

  9. Python高级用法总结

    Python很棒,它有很多高级用法值得细细思索,学习使用.本文将根据日常使用,总结介绍Python的一组高级特性,包括:列表推导式.迭代器和生成器.装饰器. 列表推导(list comprehensi ...

随机推荐

  1. Python接口测试(第一个接口返回的数据作为第二个参数的入参)

    python代码如下 import requests url1="http://localhost:8080/pinter/com/getSku?id=1" respon=requ ...

  2. 暴力+辗转相除法——N个数求和

    题目来源 PTA 团体程序设计天梯赛-练习集 L1-009 N个数求和 (20分) https://pintia.cn/problem-sets/994805046380707840/problems ...

  3. 面试刷题11:java系统中io的分类有哪些?

    随着分布式技术的普及和海量数据的增长,io的能力越来越重要,java提供的io模块提供了足够的扩展性来适应. 我是李福春,我在准备面试,今天的问题是: java中的io有哪几种? java中的io分3 ...

  4. 开源项目OEIP 游戏引擎与音视频多媒体(UE4/Unity3D)

    现开源一个项目 OEIP 项目实现的功能Demo展示 这个项目演示了在UE4中,接入摄像机通过OEIP直接输出到UE4纹理上,并直接把UE4里的RenderTarget当做输入源通过OEIP里GPU管 ...

  5. Android项目目录结构模板以及简单说明

    1) src  文件 编写java代码的文件目录,遵循java的命名规范.分包 2) gen  文件      包含了android的资源文件的标识符,是不需要程序员维护,是自动添加的 3) asse ...

  6. demo26-路径

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. 滑动窗口-Moving Stones Until Consecutive II

    2020-02-20 16:34:16 问题描述: 问题求解: public int[] numMovesStonesII(int[] stones) { int n = stones.length; ...

  8. [最短路,floyd] Codeforces 1204C Anna, Svyatoslav and Maps

    题目:http://codeforces.com/contest/1204/problem/C C. Anna, Svyatoslav and Maps time limit per test 2 s ...

  9. [dfs] HDU 2019 Multi-University Training Contest 10 - Block Breaker

    Block Breaker Time Limit: 2000/2000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Others)T ...

  10. spring-boot-plus-v2.0发布了-让天下没有难写的代码

    spring-boot-plus是易于使用,快速,高效,功能丰富,开源的spring boot脚手架 前后端分离,专注于后端服务 目标 每个人都可以独立.快速.高效地开发项目! GITHUB | GI ...