python3xiaobaike_2020/chapter6/6-8 python3小白课:解锁你心仪的三方包.md
2025-04-20 23:22:14 +08:00

204 lines
12 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# python3小白课解锁你心仪的三方包
### 三方包管理仓库
**PyPI**(*Python Package Index*)是python**官方的第三方库的仓库**所有人都可以下载第三方库或上传自己开发的库到PyPI。
它的网址为(如果访问比较慢可以寻找一些国内的镜像源站如清华大学包源[https://www.lfd.uci.edu/~gohlke/pythonlibs/](https://www.lfd.uci.edu/~gohlke/pythonlibs/),或者扶墙):
[https://pypi.org/](https://pypi.org/)
![图6-8-1 pypi官网首页](assets/6-8-1.jpg)
#### 查看、下载三方包
无需注册,你可以输入你想要查看或下载的包名,搜索详细信息,我们来随意搜索一个,比如做爬虫的一个很不错的三方包`requests`。输入并点击搜索按钮后会跳转到结果界面:
![图6-8-2 requests搜索结果](assets/6-8-2.jpg)
可以看到有很多很多个搜索结果,可以点击进去最匹配的那个结果。这里看到的`2.23.0`是最新版本的版本号。
![图6-8-3 包的内页](assets/6-8-3.jpg)
如上图所示,我们进入了包的详情页面,在这里可以看到包的最新版本,底下的`pip install requests`是使用包管理工具`pip`来下载包的命令行可以复制该行放到cmd中执行。关于包管理工具`pip`,后面我们会再详细讲解。
右上角是现在的版本是否为最新版本以及该版本的发布日期等信息。
在下面正文内容的左侧边栏有一个导航条,如图我们标注出了功能信息,默认进入的是项目描述页,会告诉我们这个包是做啥的,你可以了解一下,该信息由包的开发者提供,如果开发者比较懒,你也可能看不到啥信息。
发行历史部分是查看历史版本时间线用的,如果你需要下载一个指定的历史已发布的版本可以从这里进入。
![图6-8-4 下载文件页面](assets/6-8-4.jpg)
下载文件部分是展示有哪些资源可供下载的。你可以查看文件类型适合的python版本上传日期哈希值等信息。还可以点击链接进行下载。
比如这里我们看到有两个资源可供下载,`.whl`文件是wheel文件轮子的意思我觉得取的寓意很好下载了轮子你就不用重复造轮子了。这是python打包中比较新的一种很不错的打包格式是编译过的包文件不需要下载代码后自己本机编译提高了安装的成功率。下载后可以直接通过`pip`包管理工具安装,网上有些说法是说需要先安装`wheel`这个三方包才能安装,实测是不需要的。而安装`wheel`这个库之后可以自己来打包自己的`whl`文件。
> [!tip]
>
> 你可以尝试把下载好的whl文件后缀名修改为zip发现它可以用压缩软件打开实际它是一个压缩打包文件。
另一种格式是`tar.gz`格式,这是源码文件压缩格式,在有能用的`whl`包的时候我们都不太推荐用这种格式,因为有的时候需要你自己本机编译一些原始代码,如果电脑中缺少某些编译库,则会出现各种各样的报错问题,所以不到不得已不使用。
可能还有一些其他你可能见到的格式,你都可以从网上找到对应的安装方法。
上面讲的是到pypi官网去找到包并下载的这种操作比较适合给一些公司内网不能连接外网下载离线安装或者想看看有些什么包可以用的情况实际我们在知道要安装什么包的时候极少会登录pypi官网去下载。
#### 自己贡献三方库
除了使用全球开发者提供的各种各样的三方库之外,你也可以贡献自己的三方库。
只需要在pypi官网注册登录并按照要求上传相关的文件即可。需要注意自己注册的三方库名字不能跟官网中已有的重复即可这个在注册项目的时候是可以搜索看一下的。
关于这块内容,入门的同学们可以不做掌握,如果大家感兴趣的话,今后在进阶或高级课程中会详细再跟大家讲解。
---
### pip包管理工具
前面我们已经提到了`pip`这款包管理工具同很多其他编程语言一样通过这款工具我们可以轻松的做到python的三方库的管理、安装、卸载等操作。
这部分我们来着重讲解一下日常常见的使用。
`pip`工具是一个命令行工具可以在cmd命令提示符中使用。目前的python安装包通常都会自带`pip`工具一起安装的也可以自己去下载安装可以看一下我们第3课的截图已经默认安装了。
可以在cmd中输入命令查看是否已安装
```powershell
pip --version
```
如果成功弹出版本号,说明安装成功而且可以正常调用。
如果告诉你找不到`pip`这款工具首先你可以看一下环境变量中是否已经将python安装目录下的`Scripts`目录加入了环境变量中,如果也确实加入了,可以重启再看一看。
如果还是不成功,可能你就需要手动安装一下`pip`了。需要手动安装的同学可以看下,手动安装我们参考官网介绍:[https://pip.pypa.io/en/stable/installing/](https://pip.pypa.io/en/stable/installing/)
首先我们需要戳这个下载相关文件:[https://bootstrap.pypa.io/get-pip.py](https://bootstrap.pypa.io/get-pip.py)
然后运行命令在线安装pip
```powershell
python get-pip.py
```
如果我们保证`pip`已经安装好了,就来看一下如何使用吧。
我们有如下一些命令来使用:
```powershell
# 通过pip在线安装三方库如requests这个命令最常使用务必牢记
# 它会自动下载适合你目前安装的python的包并安装如果包依赖于其他包也会一并下载安装
pip install requests
# 查看目前已安装的三方库列表
pip list
# 查看目前有哪些三方库有新版本了
pip list -o
# 如果pip不是最新版本pip运行完一些命令时还会经常提醒你升级升级pip自身的命令一般也会给出
# 从这个命令我们知道前面加上python -m也能调用pip相关命令适用于Scripts文件夹未加入环境变量的情况或升级自身的情况
python -m pip install --upgrade pip
# 查看pip的帮助
pip --help
# 升级某个三方包,有两种写法(一般来讲功能可以用就无需更新到最新版本,因为可能不兼容)
pip install --upgrade 包名
pip install -U 包名
# 卸载某个包
pip uninstall 包名
# 安装一个wheel包如果已进入whl文件所在路径直接写完整文件名否则写完整路径可加引号
pip install 本地whl文件名
# 安装源码包
pip install 本地tar.gz文件名
# 顺带一提也可以将该压缩包解压cmd进入解压后的文件夹运行如下命令安装
python setup.py install
# 当包下载过慢的时候,设置使用国内镜像,你可以网上搜到很多,我们以清华源镜像为例:
# 帮助参考https://mirrors.tuna.tsinghua.edu.cn/help/pypi/
# 临时一次性使用:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名
# 永久使用配置:
# 先升级pip最新版需要>=10.0.0版本)
python -m pip install --upgrade pip
# 注意不要使用上述网站让你用的这个命令pip install pip -U实测卸载pip以后无法安装会报找不到pip了
# 源设置:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 设置完之后按往常那样安装包即可
# 离线下载包(如果包依赖于其他包,也会一并下载)
pip download 包名
# 上述会在cmd当前目录下载包你可以指定保存目录更推荐
pip download -d 保存目录 要下载的包名
# 比如下载一个ipython包
pip download -d "E:\Programs\编程开发\python3\package\ipython" ipython
# 将离线下载好的包给不能联网的电脑离线安装:
pip install --no-index --find-links=下载的离线包保存目录 包名
# 比如安装ipython的包
pip install --no-index --find-links="E:\Programs\pythonpackage\for python3\ipython" ipython
# 冻结项目所用的三方包(后续我们会讲到虚拟环境,只会冻结虚拟环境中用到的包):
# 会将三方包的名称版本号写进requirements.txt这个文件中供后续换电脑移植快速恢复三方包环境使用
# 约定俗称用requirements.txt你喜欢也可以改为其他文件名
pip freeze > requirements.txt
# 如果新安装的电脑能联网
pip install -r requirements.txt
# 如果新安装的电脑无法联网
# 先找台能联网的电脑,批量下载这些三方包
pip download -d "保存目录路径" -r requirements.txt
# 新电脑批量安装本地离线包
# 这里可能的报错的情况是当包分py2、py3版本却下载了错误版本时当python安装的是32位的但安装包是64位的时。
# 这时候到pypi官网下载正确适合的包即可。
pip install --find-links="下载的离线包保存目录" -r requirements.txt
# 搜索三方包
pip search 包名
```
基本上日常常用的`pip`命令就这些,大家可以只记住最基本的在线安装命令,因为多数时候我们也只用到这个命令而已。其他的命令,先做一个大致了解,当需要时再回来本次课程查阅即可。
本课涉及到的一些英语单词也比较多,我挑了比较重要的都列举出来了,大家可以看一下加强学习记忆。
当你都记住之后,上面的命令的记忆就基本不成问题了(偷偷告诉你,很多其他编程语言的管理工具的命令行工具的命令是类似的,记住之后对你很有帮助哦)。
### 单词释义
| 单词 | 释义 |
| -------------------- | --------------------------------------------------------- |
| python package index | python包索引简称PyPI全球的官方python包仓库 |
| search projects | 搜索项目 |
| requests | 请求request的复数 |
| pip | python的三方包管理工具 |
| install | 安装 |
| latest version | 最新的版本 |
| navigation | 导航 |
| project description | 项目描述 |
| release history | 发行历史 |
| download files | 下载文件 |
| filename, size | 文件名,大小 |
| file type | 文件类型 |
| wheel | 轮子 |
| source | 源码 |
| python version | python的版本 |
| hashes | 哈希值hash的复数 |
| scripts | 脚本script的复数 |
| upgrade | 升级 |
| uninstall | 卸载 |
| setup | 安装 |
| config | 配置 |
| set | 设置,动词 |
| global.index-url | global全局的index-url首页地址 |
| download | 下载 |
| --no-index | 没有索引,其实我也没太搞懂这个参数用来干嘛的 |
| --find-links | 寻找链接后面给个离线包的目录告诉pip安装包从该目录下找 |
| freeze | 冻结 |
| requirements | 要求requirement的复数形式约定俗称的冻结后保存的文件名 |
| search | 搜索 |