前言
Python 之所以受欢迎不仅是因为它简单易学,更重要的是它有非常多的宝藏工具,我们只要安装就能在 Python 里使用这些工具。
它们可以处理各式各样的问题,无须我们再造轮子,而且随着社区的不断更新维护,有些工具越来越强大,几乎能媲美企业级应用。
那么这些第三方工具如何下载安装呢?它们被放在一个统一的仓库——PyPI(Python Package Index)中。有了仓库,我们还需要有类似管理员的角色,pip 就是这样一个角色。
pip 把工具包从 PyPI 中取出来,然后安装到我们使用的 Python 中,pip 还可以管理安装完成的工具,实现更新、查看、搜索、卸载等操作。一句话总结:pip是Python官方的包管理器,可以方便地安装、升级和卸载Python包。
今天就介绍一下常用的pip的基本命令。
pip 常用命令
pip(package installer for python)是 Python 包管理工具。pip 可以对 Python 的第三方工具进行安装、更新、卸载等操作十分方便。
其实 pip 是一个命令行程序,所以 pip 一般都在命令行中执行各种操作。pip 命令组合比较灵活,下面重点介绍几个常用的。
1.显示版本和路径
pip --version
2.获取帮助
pip --help
3.升级pip和升级包
pip install --upgrade pip # Linux/macOS
pip install -U pip # windows
pip install --upgrade <package> # 其中<package>是要升级的包名
4.列出所有pip包
pip list
查询可升级的包
pip list -o可以查询可升级的包。
5.安装包(install)
install 是安装命令,它的用法为:
pip install <package> # 其中<package>是要安装的包名
或者:
pip install -r requirements.txt
requirements.txt 里面包含待安装的包信息。
唯一需要特殊说明的是,安装时可以指定版本号来安装,例如:
pip install SomePackage # 最新版本
pip install SomePackage==1.0.4 # 指定版本
pip install ‘SomePackage>=1.0.4’ # 最小版本
6.卸载包(uninstall)
uninstall 是卸载安装包的命令,它的用法为:
pip uninstall <package> # 其中<package>是要卸载的包名
或者:
pip uninstall -r requirements.txt
7.升级包
升级包的命令为:
pip install -U <包名>
或者:
pip install <包名> --upgrade
8.搜索包(search)
pip search <package> # 其中<package>是要搜索的包名
9.导出已安装的包列表
pip freeze > requirements.txt # 将环境中已安装的包保存到requirements.txt文件中
10.freeze
命令 pip freeze 用于查看已经安装的包及其版本信息,并支持导出到指定文件中,例如:
pip freeze > requirements.txt
11.show
show 命令用于显示包所在目录及信息,它的用法为:
pip show <包名>
更多 pip 的命令行指令大家可以通过命令 pip man 进行查看。这里不在一一介绍。
离线安装
通常第三方工具的在线安装的方式比较简单,直接采用上面介绍的 pip 命令即可。而很多时候,我们在开发过程中用自己的计算机安装了很多第三方工具,开发完成则需要部署到客户的环境中。若此时客户的环境不能联网,那么我们就需要采用离线的方式进行第三方工具的安装。
第三方工具的离线安装的大致思路如下:
- 从可以联网的计算机上导出项目工程依赖的第三方工具的名称到一个空文件中。
- 下载指定的第三方工具安装包到指定文件夹。
- 将第三方工具名称文件和安装包拷贝到离线环境进行安装。
具体操作步骤如下:
- 本地导出项目的第三方工具名称
进入本地项目,使用pip freeze > requirements.txt导出相关第三方工具名称。 - 下载第三方工具到本地
将工具的安装包下载到本地指定文件,下载安装包的命令如下:
pip download -d your_offline_packages <package_name> # 下载单个离线包
pip download -d your_offline_packages -r requirements.txt # 批量下载离线包
pip download 是一个工具,可用于下载 Python 项目及其依赖项。
执行 pip download 命令在 Linux 上下载一个项目,软件包将以 .whl 结尾,该软件包可以直接安装在 Windows 上,也可以安装在 macOS 上。
wheel文件是工具的源文件,可以通过命令pip install×××××.whl直接安装。
- 离线安装
上传本地下载完成的所有第三方工具的源文件和依赖包的文件到远端服务器,然后使用如下命令进行离线安装:
pip install --no-index --find-links=/your_offline_packages/ package_name #安装单个离线包
pip install --no-index --find-links=/your_offline_packages/ -r requirements.txt # 批量安装离线包
pip 换源
很多人抱怨 pip 安装第三方工具有时太慢了,那是 pip 源的问题。pip 默认从 PyPI 中下载工具安装包,但 PyPI 服务器在国外,我们访问 PyPI 服务器速度会很慢。
目前,国内提供了很多镜像源,用来替代 PyPI 默认的地址,像
- 中科大: https://pypi.mirrors.ustc.edu.cn/simple
- 阿里源:https://mirrors.aliyun.com/pypi/simple/
- 豆瓣源 :http://pypi.douban.com/simple/
- 腾讯源:http://mirrors.cloud.tencent.com/pypi/simple
- 清华源: https://pypi.tuna.tsinghua.edu.cn/simple
这些镜像源备份了 PyPI 里的数据。这些镜像源的服务器在国内,所以我们的访问速度会快很多。
通常有如下三种方式更换 pip 安装源。
- 临时替换
参数-i用于指定下载源,如:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple <package-name>
- 全局源(清华源)
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
- 永远生效
在 Linux 下,修改 ~/.pip/pip.conf 文件,若没有该文件就创建一个文件夹和文件,文件夹名称要加.,表示该文件夹是隐藏文件夹。修改内容如下,我们可以把 index-url 替换为自己想要修改的国内 pip 源地址。
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=mirrors.aliyun.com
注意⚠️:注意换源的时候有https和http,http的需要信任(因为未加密),可以通过下面两个方法解决
- 安装时加入 --trusted-host 临时参数
pip install -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com【package-name】
- 在 pip.conf 中加入 trusted-host 选项,该方法是一劳永逸
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
pip 缓存位置
每次pip都会下载一些包,不会自动删除,手动删除即可。
pip 的缓存位置在不同的操作系统下会有所不同
- Windows: 缓存位置为 %APPDATA%\pip\cache。其中,%APPDATA% 为当前用户的应用程序数据目录,通常位于 C:\Users{用户名}\AppData\Roaming。
- macOS/Linux: 缓存位置为 ~/.cache/pip。
可以通过以下命令查看 pip 的配置信息,包括缓存位置:
pip config list
如果需要修改缓存位置,可以在 pip 的配置文件中进行设置。Windows 上的配置文件为 %APPDATA%\pip\pip.ini 或 %APPDATA%\pip\pip.conf,macOS/Linux 上的配置文件为 ~/.config/pip/pip.conf。在配置文件中添加以下内容即可修改缓存位置:
[global]
cache-dir = /path/to/cache/dir
其中 /path/to/cache/dir 替换为你希望设置的缓存路径。修改完成后,重启终端或者重新加载 pip 配置即可生效。
安装时间超时问题
pip的超时时间默认为15秒,如果下载速度过慢,可以使用以下命令设置超时时间为60秒:
pip install --default-timeout=60 <package>
- 添加参数–default-timeout=1000
- 在配置里面[global]下添加timeout=1000
虚拟环境多python版本问题
python -m pip install <package>