python安装三方库教程:关于pip命令的一切,到底怎么用?
- 一、pip设置国内源:
- 1.1如何本地配置源:
- 1.1.1 方法1:下载的时候指定地址
- 1.1.2 方法2:使用pip命令生成配置文件
- 1.1.3 方法3:自定义配置文件
- 二、在线下载
- 2.1单个下载:
- 2.2批量下载:
- 2.2.1方法1:命令行添加多个包
- 2.2.2方法2:使用freeze生成文件
- 2.2.3方法3:在代码中下载
- 三、离线下载
- 3.1离线下载地址:
- 3.2离线下载的包格式:
- 3.3离线安装.tar.gz格式包
- 3.4离线安装.whl格式包
- 3.4.1安装单个.whl包
- 3.4.2批量安装.whl包:
- 四、所有pip命令的总结
- **4.1 pip命令的格式**
- 4.2 command命令详解。
- 4.3 General Options:通用选项详解
- 五、文档资料
看这篇文章的目录,大家会发现写的很详细,适合收藏哦。如果你是刚学python的小白也没关系!看完这篇文章,关于pip的一切你就懂了。
关于pip的命令需要使用命令行,那么打开命令行界面:
- win+s/win+r快捷键都行,然后输入cmd后回车就能调出命令行界面了
一、pip设置国内源:
python以入门简单和丰富的第三方库著称,所以关于python的第三方库安装,也显得非常重要。python要安装第三方库,用的是pip包管理工具, 而pip 也已内置于 Python 3.4 和 2.7 及以上版本,可以直接使用。
例如最常用的安装操作:
pip install package_name
但是你会发现下载速度差强人意,只有几k每秒,甚至会报红提示错误,这是因为python官方的地址在国内不是很稳定,所以我找到了几个国内的第三方镜像,我们可以使用这些地址作为下载源,这样就能解决pip下载慢的情况。
- 清华大学:https://pypi.tuna.tsinghua.edu.cn/simple
- 阿里云:http://mirrors.aliyun.com/pypi/simple
- 豆瓣:http://pypi.douban.com/simple
- 中科大:https://pypi.mirrors.ustc.edu.cn/simple
- 网易: https://mirrors.163.com/pypi/simple
- 华为:https://repo.huaweicloud.com/repository/pypi/simple
- 腾讯:https://mirrors.cloud.tencent.com/pypi/simple
那么
1.1如何本地配置源:
1.1.1 方法1:下载的时候指定地址
例如我们在下载包的命令后面,加上-i指令和对应的地址,就可以从这个地址下载包
pip install package_name -i https://pypi.tuna.tsinghua.edu.cn/simple
1.1.2 方法2:使用pip命令生成配置文件
上面那种方法很好,但是每次都要定义一下也太麻烦了吧,所以这次我们使用pip的config set命令,在电脑上生成一个配置文件。
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
但是有时候,在下载包的时候,会提示没有信任的host,所以还要另外加上一个命令
pip config set install.trusted-host pypi.tuna.tsinghua.edu.cn
此时我的电脑提示,已经在以下路径生成了一个配置文件,
Writing to C:\Users\我的电脑名称\AppData\Roaming\pip\pip.ini
1.1.3 方法3:自定义配置文件
我们可以在上述方法2的配置文件基础上进行修改,也可以在%HOMEPATH%\路径下,也就是C:\Users\我的电脑名称\这个路径下面,新建一个pip文件夹,然后在pip文件夹下,创建一个pip.ini的文档。
这两个位置的pip.ini配置文件都可以生效,如果同时存在的话,会优先使用\AppData\Roaming文件夹下的配置文件。
pip.ini的文件内容如下:
此时可以设置单独的一个地址:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = pypi.tuna.tsinghua.edu.cn
想把所有能用的都加上也可以:
在我的实际体验来说,把这么多地址全加上,不一定更快,我的体验是反而比只加单个的慢,可能是网址太多了,每个都去查询了一遍,反而速度慢了。
[global]
index-url = https://pypi.org/simple
extra-index-url=
https://pypi.tuna.tsinghua.edu.cn/simple
http://mirrors.aliyun.com/pypi/simple
http://pypi.douban.com/simple
https://pypi.mirrors.ustc.edu.cn/simple
https://mirrors.163.com/pypi/simple
https://repo.huaweicloud.com/repository/pypi/simple
https://mirrors.cloud.tencent.com/pypi/simple
[install]
trusted-host =
pypi.tuna.tsinghua.edu.cn
mirrors.aliyun.com
pypi.douban.com
pypi.mirrors.ustc.edu.cn
mirrors.163.com
repo.huaweicloud.com
mirrors.cloud.tencent.com
二、在线下载
2.1单个下载:
正常情况下我们使用install命令就可以
pip install package_name
哎,如果你想要指定版本呢,也可以设定。
pip install package_name == 版本号
版本号管理有以下几种格式:
-
== 指定版本号
-
=> 高于此版本号
-
<= 小于此版本号
-
< 小于此版本号
-
‘>’ 大于此版本号
2.2批量下载:
有时候我们要下载很多个包,这个时候应该怎么办呢?我这里提供了四种办法,可以让你批量下载。
2.2.1方法1:命令行添加多个包
我们在命令行上,将几个包之间用空格分开即可:
pip install package1 package2 package3
2.2.2方法2:使用freeze生成文件
在pip中,有一个freeze命令,可以将电脑上的python第三方包统一导出,导出格式是:package==版本号,一般用txt来存储和导入(txt文件的名称可以自定义,不一定非要用requirements)。
# 将包信息导出为txt
pip freeze > requirements.txt
# 导入并安装文件中有的包
pip install -r requirements.txt
2.2.3方法3:在代码中下载
当然了,我们还能用代码批量下载,本质就是用代码来运行cmd命令,不喜欢用命令行的朋友,写代码也是一样的。
可以使用:pip.main()方法
import pip
pip.main(["install", "package1", "package2", "package3"])
也可以使用os.system()方法:
import os
os.system("pip install package1 package2 package3")
三、离线下载
有时候你无法在线联网下载第三方库,一些内网、实验室、敏感涉密的单位会有这样的需求,所以可以先在其他设备上下载好第三方包,通过U盘或者其他方法,把文件放到我们的无网电脑上,然后通过pip在本地安装。
3.1离线下载地址:
python离线库地址:
[荧光动力学实验室(LFD)]
https://www.lfd.uci.edu/~gohlke/pythonlibs/
[python官方索引]
https://pypi.org/
当然了,在前文中的国内镜像也可以下载,但是我通过网址进入后,因为内容太多,网页就卡死了,没办法检索需要什么包。所以更推荐上面的两个网址,可以进去检索后再下载。
3.2离线下载的包格式:
进入上面的pypi网址,检索到需要的包后,进入下载页面,此时你会发现,下载选项中有非常多的格式,这个时候你可能会头晕眼花,不过不要慌,我研究以后发现,格式其实分为三大类,
-
源包格式:.tar.gz,这个是所有平台都能用的压缩包,体积大。
-
构建版本(一般是.whl格式,仅针对对应的平台,体积小)
- win版本:
arm64:一般是平板或者手机的架构
amd64:windows电脑的64位架构
win32:windows电脑的32位架构
- Linux版本
- macos版本
下载的时候,记得下载依赖库,例如某个库A需要是依赖库B才能运行的,所以库A和B都要下载。
在查询资料的时候,我以为amd64的架构是amd的cpu才能用,结果发现并不是这样,intel和amd的电电脑,都是使用的amd64架构,在使用pip inspect 命令检查后,发现确实如此:platform_machine": “AMD64”,。
3.3离线安装.tar.gz格式包
1.首先将.tar.gz格式的文件解压,这里我使用的解压软件是7z,一个开源的解压软件。你有解压软件的话也可以用其他的(比如好压、winrar什么的),没有的话推荐你使用这款解压软件,非常好用。
7z下载地址:https://www.7-zip.org/
注意的是,这个包有好几层,所以我是先打开这个包,然后一层一层的点进去,然后把最后那层文件夹拖出来。如果直接解压的话,是一个tar的压缩包,需要再解压一次。
2我们进入解压好的文件夹,然后通过shift+鼠标右键的方式,在右键菜单中找到:在此处打开power shell窗口的选项,这样我们进入命令行页面后,默认就是当前位置。
(我看有些教程说要把解压好的文件夹放到python-lib文件夹下,我尝试的时候发现并不需要,随便放哪儿都可以,只要你运行命令行)
此时输入下面的命令运行即可
pyhton setup.py install
3然后就安装成功了,可以通过pip list命令检查是否安装成功。
3.4离线安装.whl格式包
3.4.1安装单个.whl包
和上文一样,我们通过shift+鼠标右键的方式,进入power shell窗口,然后就像正常的install一样,输入命令即可。
例如:
pip install xlrd-2.0.1-py2.py3-none-any.whl
这里需要注意的是:
- 包的名称不要随便改,虽然很长懒得打,但是你可以复制到命令行;包的名称是有规则的,更改后破坏规则会无法安装。
- 如果你是从其他入口进去的,path使用绝对路径也可以
注意安装顺序:先安装底层依赖库
3.4.2批量安装.whl包:
方法1:使用命令行安装
如果你在联网设备上已经有了成熟的环境,那么直接拷贝之前的环境即可。
# 使用freeze获取当前环境的包
pip freeze > requirements.txt
# 批量下载包,你可以指定一个文件夹下载txt中有的包
pip download -d 下载文件夹 -r requirements.txt
# 批量安装包,你可以通过以下代码安装本地资源
pip install --no-index --find-links=下载文件夹 -r requirements.txt
方法2:使用代码安装
当然,你可也可以使用代码,和第二章:线上下载章节中提到的一样,核心也是通过代码来运行命令行语句。
因为是本地安装,涉及到了本地文件地址,pip的方法就不太合适了,这里使用了os库。
引用os库进行安装:
import os
# 你的下载包文件夹地址
whl_dir = "C:\\Users\test\Downloads\source"
# 使用循环执行安装命令
for file_name in os.listdir(whl_dir):
file_path = os.path.join(whl_dir, file_name)
os.system("pip install %s" % file_path)
四、所有pip命令的总结
在上面的部分,我使用了很多的命令行,你可能会有疑问,这些指令和格式都是从哪里知道的呢?不看别人写的文章,还有什么渠道能查到呢?其实在pip的包里,就有各种命令的文档,我们可以自己研究。
在命令行中仅输入pip然后回车,就能看到pip的基础使用文档,在这章中,我会给出中文释义,以及我使用这些命令的一些示例。
对应的每个command命令,其实也有自己的一些方法和选项,例如我想知道search命令怎么使用,可以在命令行输入:
pip help search
或者
pip search -h
这样pip会列出来search的使用文档,具体的用法一看便知。
4.1 pip命令的格式
我们在命令行页面,直接输入pip并且回车,会给出一大堆提示消息这是关于如何使用pip命令的指南,现在我来一一使用并列出对应的例子。
用法格式:
pip <command> [options]
# 解释 pip 命令关键字 选项关键字
# 例如 pip list --format json (意思是:列出安装的第三方包,格式为json)
4.2 command命令详解。
commands命令 | 释义解释 | 示例(举例ddt库) |
---|---|---|
install | 安装包 | pip install ddt(安装ddt) |
download | 下载包 | pip download ddt(下载ddt) |
uninstall | 卸载包 | pip uninstall ddt(卸载ddt) |
freeze | 将本地已经安装的第三方包列表,输出requirements格式 | pip freeze > test.txt (将本地包信息输出到test.txt文件中) |
inspect | 检查python环境 | pip inspect(检查环境) |
list | 列出所有安装的python的第三方库 | pip list(列出所有第三方库) |
show | 显示某个包的信息 | pip show ddt(展示ddt包的信息) |
check | 检查某个安装包是否有依赖项 | pip check ddt(检查ddt是否有依赖包) |
config | 管理本地和全局的配置 | pip config list(查看配置项) |
search | 从PyPI 搜索包 | pip search ddt(搜索ddt包) |
cache | 检查和管理pip的缓存 | pip cache info(查看缓存信息) |
index | 检查包索引中的可用信息 | pip index versions ddt(查看ddt包的历史版本) |
wheel | 根据需要构建wheels(跟download很像,具体区别我也不清楚) | pip wheel ddt(下载ddt) |
hash | 计算某个包的哈希值 | pip hash C:\Users\package\ddt.whl(计算ddt文件的哈希值) |
completion | 用于完成命令的辅助命令。 | pip completion list --powershell(输出命令对应的代码) |
debug | 显示对调试有用的信息。 | pip debug list(输出list命令的debug信息) |
help | 显示命令的帮助信息 | pip help list(显示list命令的用法) |
4.3 General Options:通用选项详解
General Options通用选项 | 中文释义 |
---|---|
-h, --help | 展示帮助项 |
–debug | 让未处理的异常在主子程序之外传播,而不是记录它们到stderr |
–isolated | 在隔离模式下运行pip,忽略环境变量和用户配置。 |
–require-virtualenv | 允许pip只在虚拟环境中运行;否则将退出并返回错误。 |
–python | 使用指定的Python解释器运行pip |
-v, --verbose | 提供更多输出。选项是可添加的,最多可使用3次。 |
-V, --version | 显示版本 |
-q, --quiet | 输出更少。选项是可添加的,最多可使用3次(对应于WARNING、ERROR和CRITICAL日志记录级别)。 |
–log
| 日志,并且定义路径 |
–no-input | 禁用输入提示 |
–keyring-provider <keyring_provider> | 如果允许用户输入,则通过密钥环库启用凭据查找。指定要使用的机制[disabled,import,subprocess]。(默认设置:禁用) |
–proxy | 以scheme://[user:passwd@]proxy.server:port的形式指定代理 |
–retries | 每个连接应尝试的最大重试次数(默认为5次) |
–timeout | 设置连接超时长(默认为15秒) |
–exists-action | 路径已存在时的默认操作:(s)witch(i)gnore(w)ipe(b)ackup(a)bort |
–trusted-host | 将此主机或host:port对标记为受信任,即使它没有有效的HTTPS或任何HTTPS |
–cert
| PEM编码的CA证书捆绑包的路径。如果提供,则覆盖默认值。请参阅“SSL”有关详细信息,请参阅pip文档中的“证书验证”。 |
–client-cert
| SSL客户端证书的路径,一个包含私钥和PEM格式的证书。 |
–cache-dir
| 将缓存数据存储在
|
–no-cache-dir | 禁用缓存 |
–disable-pip-version-check | 不要定期检查PyPI来确定是否有新版本的pip可供下载 |
–no-color | 不用彩色输出 |
–no-python-version-warning | python不被支持时,发出警告 |
–use-feature | 启用可能向后不兼容的新功能。 |
–use-deprecated | 启用不推荐使用的功能,这些功能将来将被删除。 |
五、文档资料
-
python官方文档https://docs.python.org/zh-cn/3/contents.html
-
python中文指南:https://python.iswbm.com/index.html
-
菜鸟pythonhttps://www.runoob.com/python3/
-
w3chttps://www.w3cschool.cn/python3/
-
官方pip文档https://packaging.python.org/en/latest/tutorials/installing-packages/