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 ...
随机推荐
- Python接口测试(第一个接口返回的数据作为第二个参数的入参)
python代码如下 import requests url1="http://localhost:8080/pinter/com/getSku?id=1" respon=requ ...
- 暴力+辗转相除法——N个数求和
题目来源 PTA 团体程序设计天梯赛-练习集 L1-009 N个数求和 (20分) https://pintia.cn/problem-sets/994805046380707840/problems ...
- 面试刷题11:java系统中io的分类有哪些?
随着分布式技术的普及和海量数据的增长,io的能力越来越重要,java提供的io模块提供了足够的扩展性来适应. 我是李福春,我在准备面试,今天的问题是: java中的io有哪几种? java中的io分3 ...
- 开源项目OEIP 游戏引擎与音视频多媒体(UE4/Unity3D)
现开源一个项目 OEIP 项目实现的功能Demo展示 这个项目演示了在UE4中,接入摄像机通过OEIP直接输出到UE4纹理上,并直接把UE4里的RenderTarget当做输入源通过OEIP里GPU管 ...
- Android项目目录结构模板以及简单说明
1) src 文件 编写java代码的文件目录,遵循java的命名规范.分包 2) gen 文件 包含了android的资源文件的标识符,是不需要程序员维护,是自动添加的 3) asse ...
- demo26-路径
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 滑动窗口-Moving Stones Until Consecutive II
2020-02-20 16:34:16 问题描述: 问题求解: public int[] numMovesStonesII(int[] stones) { int n = stones.length; ...
- [最短路,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 ...
- [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 ...
- spring-boot-plus-v2.0发布了-让天下没有难写的代码
spring-boot-plus是易于使用,快速,高效,功能丰富,开源的spring boot脚手架 前后端分离,专注于后端服务 目标 每个人都可以独立.快速.高效地开发项目! GITHUB | GI ...