pip使用详解/pip换源
目录
- 零、参考连接
- 一、安装pip
- 二、pip命令的基本使用方法
- 1、指定库的名字
- 2、从Requirements文件安装
- 3、其他基本命令
- 三、控制库的版本-Version specifiers
- 四、控制库的平台-Environment Markers
零、参考连接
https://pip.pypa.io/en/stable/user_guide
https://pip.pypa.io/en/stable/reference/pip_install/#usage
https://www.python.org/dev/peps/pep-0440/#version-specifiers
一、安装pip
Ubuntu:
# python2 sudo apt-get install python-pip # python3 sudo apt-get install python3-pip
Windows:
装好Python之后把Python安装目录下的Scripts
文件夹的路径加入环境变量PATH
就行。测试是否安装成功
# python2 pip -V # 或者 pip2 -V # python3 pip3 -V
当pip命令无法运行时:
# python2 and python3 on windows, python2 on linux python -m pip -V # python3 on linux python3 -m pip -V
同时存在Python2和Python3时,在linux系统中,可以通过pip(或者pip2)和pip3分别为Python2和Python3安装库;而在Windows中Python2和Python3都有pip.exe,所以就需要使用pip2和pip3来分别为Python2和Python3安装库。为了节约篇幅,后面只使用pip作为例子讲解,需要为Python2安装库时,使用pip2命令;需要为Python3安装库时,使用pip3命令。
pip换源
换源的就是把下载库的服务器切换为国内的镜像服务器,下载速度会快很多很多。- 清华的源
Linux 打开终端,输入:mkdir ~/.pip/ echo [global] > ~/.pip/pip.conf echo index-url=https://pypi.tuna.tsinghua.edu.cn/simple >> ~/.pip/pip.conf
Windows 打开命令行,输入:
mkdir %USERPROFILE%\pip echo [global] > %USERPROFILE%\pip\pip.ini echo index-url=https://pypi.tuna.tsinghua.edu.cn/simple >> %USERPROFILE%\pip\pip.ini
上面的命令就是创建
~/.pip/pip.conf
或者%USERPROFILE%\pip\pip.ini
,然后在文件中写入:[global] index-url=https://pypi.tuna.tsinghua.edu.cn/simple
%USERPROFILE%
是用户目录;~
是Ubuntu下的用户目录。 - 阿里的源
Linux 打开终端,输入:mkdir ~/.pip/ echo [global] > ~/.pip/pip.conf echo index-url=https://mirrors.aliyun.com/pypi/simple/ >> ~/.pip/pip.conf
Windows 打开命令行,输入:
mkdir %USERPROFILE%\pip echo [global] > %USERPROFILE%\pip\pip.ini echo index-url=https://mirrors.aliyun.com/pypi/simple/ >> %USERPROFILE%\pip\pip.ini
上面的命令就是创建
~/.pip/pip.conf
或者%USERPROFILE%\pip\pip.ini
,然后在文件中写入:[global] index-url=https://mirrors.aliyun.com/pypi/simple/
- 清华的源
二、pip命令的基本使用方法
1、指定库的名字
- 一次安装一个包
pip install SomePackage # 安装最新版本 pip install SomePackage==1.0.4 # 安装指定版本1.0.4 pip install 'SomePackage>=1.0.4' # 最低版本是1.0.4 pip install SomePackage.whl # 安装whl文件 pip install http://wxpython.org/Phoenix/snapshot-builds/wxPython_Phoenix-3.0.3.dev1820+49a8884-cp34-none-win_amd64.whl # 从链接安装 pip install --upgrade --no-deps SomePackage # 升级SomePackage且不升级依赖 pip install --user SomePackage # 把SomePackage安装到用户目录中
在使用
>=
、<
等符号时,需要在两边加上单引号,应为>
和<
在命令行中是重定位输出和输入符。>=
、<
等符号是版本限定的关系符。 - 也可以一次安装多个包
pip install Package Package2==1.0.4 'Package3>=1.0.4'
2、从Requirements文件安装
pip install -r requirements.txt
requirements.txt的每一行是一个包。一个例子如下:
# 没有版本限定符
nose
beautifulsoup4# 有版本限定符
# 版本限定符参考: https://www.python.org/dev/peps/pep-0440/#version-specifiers
docopt == 0.6.1 # 指定版本0.6.1
keyring >= 4.1.1 # 最低版本 4.1.1
coverage != 3.5 # 除了版本3.5的任意版本都可以
Mopidy-Dirble ~= 1.1 # 兼容版, 等同于:>= 1.1, == 1.*# 指定其他Requirements文件
-r other-requirements.txt# 一个特定文件
./downloads/numpy-1.9.2-cp34-none-win32.whl
http://wxpython.org/Phoenix/snapshot-builds/wxPython_Phoenix-3.0.3.dev1820+49a8884-cp34-none-win_amd64.whl
更多关于Requirements的内容,请参考Requirements File Format。
3、其他基本命令
列出某个库所有的可用版本
pip install numpy==
==
符号后面没有版本号,这样pip就会报错并列出所有可用版本。pip freeze: 以Requirements文件的格式列出当前Python环境的所有库
absl-py==0.6.1 asn1crypto==0.24.0 astor==0.7.1 backports-abc==0.5 ...
如果当前项目是使用的一个虚拟环境,要导出所有的依赖项时,就可以使用命令:
pip freeze > requirements.txt
在别处使用该项目时,就可以使用命令:
pip install -r requirements.txt
来安装本项目的所有依赖。
pip uninstall:卸载库
pip uninstall SomePackage pip uninstall -y SomePackage # 不需要确认直接卸载 pip uninstall --yes SomePackage # 同上 pip uninstall -r requirements.txt # 卸载requirements.txt中的所有库
pip list: 列出库
pip list # 列出所有库 pip list --outdated # 列出可以更新的库 pip list -o # 同上
pip show:显示已安装库的信息
pip show numpy # 显示numpy的基本信息 pip show numpy -f # 列出所有文件 pip show numpy --file # 同上
pip search:搜索库
pip search "query"
pip download: 下载库
# 把numpy下载以及numpy的依赖下载到DIR中 pip download --destination-directory DIR numpy # 把requirements.txt中的所有库下载到DIR中 pip download --destination-directory DIR -r requirements.txt
从本地下载好的文件安装:
# 从DIR找到 requirements.txt中指定的库并安装 pip install --no-index --find-links=DIR -r requirements.txt
三、控制库的版本-Version specifiers
Version specifiers, 我翻译为版本限定。版本限定的关系符包含:
~=: 兼容版本==: 特定版本!=: 排除特定版本<=, >=: 小于等于\大于等于某个版本<, >: 小于\大于某个版本===: 精确匹配
一些例子:
pip install numpy==1.15.4 # 安装版本为1.15.4的numpy
pip install numpy!=1.15.4 # 安装版本不为1.15.4的numpy,如果有更新版本,则会安装更新版本
pip install 'numpy<1.15.4' # 安装小于版本小于1.15.4的numpy
pip install 'numpy<=1.15.4' # 安装小于版本小于等于1.15.4的numpy
pip install numpy==1.15.* # 安装版本为1.15开头的numpy
pip install numpy~=1.15.4 # 等同于>= 1.15.4, == 1.15.*
在使用包含<
或者>
符号时,在命令行中需要使用单引号括起来,否则<
和>
会被命令行(终端)识别为重定向输入/输出符号。在Requirements文件中,不需要使用单引号括起来,这点和在终端中不同。
某些版本限定可以组合使用,中间使用英文逗号分割。例如:
pip install 'numpy>=1.9.*,< 1.16.3' # 安装版本大于1.9.*且版本小于1.16.3的numpy
在Requirements文件中,不需要单引号括起来,直接这样写就行:
numpy>=1.9.*,< 1.16.3
参考链接:https://www.python.org/dev/peps/pep-0440/#compatible-release
四、控制库的平台-Environment Markers
Environment Markers翻译为环境标记,实际就是除了满足版本限定符指定的版本之外,还要满足环境标记指定的条件,比如:
pip install 'numpy==1.15.4;python_version<="3.6"'
就是除了numpy的版本要等于1.15.4之外,python_version的版本还要小于等于3.6。环境标记的关系符和版本限定的关系符相同。
环境标记的作用就是,假如开发一个兼容Python2和Python3的项目,但是依赖项在Python2和Python3的版本不同,就可以使用环境标记来完成。例如,某项目依赖于matplotlib,matplotlib 3.* 不支持Python2.*,只支持Python3.*,那么我们在写Requirements文件的时候,就可以像这样写:
matplotlib<=3.0.*; python_version<="2.7"
matplotlib>=3.0.*; python_version>="3.5"
使用Python2时,就会安装2.*版本的matplotlib;使用Python3时,就会安装3.*版本的matplotlib。更多的环境标记如下表所示:
Marker | Python equivalent | Sample values |
---|---|---|
os_name | os.name | posix, java |
sys_platform | sys.platform | linux, linux2, darwin, java1.8.0_51 (note that “linux” is from Python3 and “linux2” from Python2) |
platform_machine | platform.machine() | x86_64 |
platform_python_implementation | platform.python_implementation() | CPython, Jython |
platform_release | platform.release() | 3.14.1-x86_64-linode39, 14.5.0, 1.8.0_51 |
platform_system | platform.system() | Linux, Windows, Java |
platform_version | platform.version() | #1 SMP Fri Apr 25 13:07:35 EDT 2014 Java HotSpot™ 64-Bit Server VM, 25.51-b03, Oracle Corporation Darwin Kernel Version 14.5.0: Wed Jul 29 02:18:53 PDT 2015; root:xnu-2782.40.9~2/RELEASE_X86_64 |
python_version | platform.python_version()[:3] | 3.4, 2.7 |
python_full_version | platform.python_version() | 3.4.0, 3.5.0b1 |
implementation_name | sys.implementation.name | cpython |
implementation_version | see definition below | 3.4.0, 3.5.0b1 |
extra | An error except when defined by the context interpreting the specification. | test |
参考链接:https://www.python.org/dev/peps/pep-0508/#environment-markers
pip使用详解/pip换源相关推荐
- android WebView详解,常见漏洞详解和安全源码(下)
上篇博客主要分析了 WebView 的详细使用,这篇来分析 WebView 的常见漏洞和使用的坑. 上篇:android WebView详解,常见漏洞详解和安全源码(上) 转载请注明出处:http ...
- android WebView详解,常见漏洞详解和安全源码(上)
这篇博客主要来介绍 WebView 的相关使用方法,常见的几个漏洞,开发中可能遇到的坑和最后解决相应漏洞的源码,以及针对该源码的解析. 由于博客内容长度,这次将分为上下两篇,上篇详解 WebView ...
- FPGA学习之路—接口(3)—SPI详解及Verilog源码分析
FPGA学习之路--SPI详解及Verilog源码分析 概述 SPI = Serial Peripheral Interface,是串行外围设备接口,是一种高速,全双工,同步的通信总线. 优点 支持全 ...
- faster rcnn fpn_Faster-RCNN详解和torchvision源码解读(三):特征提取
我们使用ResNet-50-FPN提取特征 model = torchvision.models.detection.fasterrcnn_resnet50_fpn(pretrained=True) ...
- 【Python】基金/股票 最大回撤率计算与绘图详解(附源码和数据)
如果你想找的是求最大回撤的算法,请跳转:[Python] 使用动态规划求解最大回撤详解 [Python]基金/股票 最大回撤率计算与绘图详解(附源码和数据) 0. 起因 1. 大成沪深300指数A 5 ...
- 生成对抗网络入门详解及TensorFlow源码实现--深度学习笔记
生成对抗网络入门详解及TensorFlow源码实现–深度学习笔记 一.生成对抗网络(GANs) 生成对抗网络是一种生成模型(Generative Model),其背后最基本的思想就是从训练库里获取很多 ...
- CNN入门详解及TensorFlow源码实现--深度学习笔记
CNN入门详解及TensorFlow源码实现–深度学习笔记 ##一.卷积神经网络 ###1.简介 卷积神经网络是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出 ...
- EKF SLAM Matlab仿真实践详解(附源码)
EKF SLAM Matlab仿真实践详解(附源码) 为提供更好的阅读体验,详细内容及源码请移步https://github.com/Nrusher/EKF_SLAM 或 https://gitee. ...
- aes js加密php解密实例,基于PHP和JS的AES相互加密解密方法详解(CryptoJS)_PHP_JS_AES源码...
[实例简介] 基于PHP和JS的AES相互加密解密方法详解(CryptoJS)_PHP_JS_AES源码 [实例截图] [核心代码] 基于PHP和JS的AES相互加密解密方法详解(CryptoJS)_ ...
最新文章
- Java OR Android
- python笔试常见题
- Windows安全配置加固
- 【转】java提高篇(二)-----理解java的三大特性之继承
- 图像特征提取与描述_角点特征04:LBP算法+HOG特征算子
- redmi airdots手动串联_串联谐振试验装置组成图
- Grafana文档(在Centos / Redhat上安装)
- MySQL性能优化(七)-- 慢查询
- Traefik-kubernetes 初试
- Android 内存监测工具 DDMS -- Heap
- macOS编译金山云ksvc ffmpeg,在rtmp flv之上支持hevc h265
- Win10找回自带的Windows照片查看器:打开jpg、png、gif格式的图片
- 数据结构(二十) -- C语言版 -- 树 - 霍夫曼树(哈夫曼树、赫夫曼树、最优二叉树)、霍夫曼编码
- 涨知识了,您想知道的光纤常识都在这里了,太详细了,赶紧收藏吧
- python画球员传球图_Python实现NBA投篮数据可视化!看看球星们的投篮热点
- 想要做大事,就要有高效的协作机制
- 什么是贴片元器件,有哪些优缺点和种类
- apache安装及配置
- NLTK学习之一:简单文本分析
- java做一个日历程序_java实现的一个简单日历
热门文章
- 暴力破解:利用正则功能自动提取爆破结果中的特征值
- 机械键盘入门:教你如何正确选择机械键盘!学习游戏两不误
- 号码归属地及运营商查询工具
- 哈工大计算机学院崔启航,2014-2015年度哈尔滨工业大学学生先进集体及先进个人评选结果公示...
- 干货|以产品要素设计解读线上小微信贷
- div+css静态网页设计 web网页设计实例作业 ——中国茶文化(30页) HTML网页制作作品 简单文化网页设计成品 dreamweaver学生网站模板
- win10修改ntp服务器地址,修改win10 ntp服务器地址
- golang 内存管理
- 程序员——相忘于江湖
- 怎么把两个excel表格合成一个