pip
是 Python
编程语言的官方包管理工具,它使得安装、更新和卸载第三方库变得简单而高效。它在功能上类似于 nodejs
中的 npm
或 PHP
中 Composer
,是 Python
开发者不可缺少的工具。
pip 的安装与配置
大多数情况下,pip 已经作为 Python 环境的一部分预装好了,无需进行额外的安装步骤。然而,为了确保 pip 的使用,需要确保 Python 和 pip 都被添加到了系统的环境变量中。这样,就可以在命令行界面中直接调用 pip 命令。
本文将详细记录如何使用 pip 来安装、卸载和更新 Python 项目所需的依赖包,以及常用的pip命令和选项。
设置pip镜像源
pip默认安装源在国外,国内安装可能比较慢,若想加速可更换为国内镜像,比如阿里云、清华大学镜像等
方法:
打开文件 C:\Users\你的用户名\AppData\Roaming\pip\pip.ini
,如果不存在 pip
文件夹则创建该文件夹并新建 pip.ini
文件,如果存在pip
文件夹但不存在pip.ini
文件,同样新建该文件,然后输入
[global] index-url = https://mirrors.aliyun.com/pypi/simple/ [install] trusted-host = mirrors.aliyun.com
表示镜像源用阿里源
查看帮助信息
命令行窗口中输入 pip -h
即可查看帮助信息,非常详细。
要查看某个命令的帮助信息,可输入pip 命令 -h
,比如查看 install 命令的帮助信息 pip install -h
安装依赖包:install
命令
1. 安装一个或多个依赖包
pip install 包名1 包名2
2. 安装特定版本的依赖包
pip install 包名==版本号
版本号规则:
~=: 匹配兼容版本,一般是第一个点号之前相同的版本均可如 ~=2.0
==: 版本完全匹配 如 ==3.24.0
!=: 排除指定的版本 如 !=3.24.0
<=, >=: 小于某个版本并且大于某个版本 <=2.6,>=2.1
<, >: 类似上个
===: 匹配不符合版本义控制的某个版本号。==="prev6"
示例安装 requests 包
pip install requests==2.32.3 pip install requests >=2.0 pip install requests !=2.0 pip install requests ~=2.0 pip install requests >=2.0,<=2.3 # 限定python版本必须大于等于3.8 pip install requests>=2 ; python >= '3.8'
参见版本号规则官方教程 packaging.python.org/en/latest/s…
3. 从本地目录或文件安装包
要求本地目录下存在 setup.py
文件pip install path/to/dir
或从本地包含 setup.py
的zip文件、whl文件中安装
pip install path/to/zipfile.zip
4. 从git上安装
pip install git+仓库url
如 pip install git+https://github.com/<user-name>/<repository-name>
安装仓库的特定版本 pip install git+https://github.com/requests/requests@v2.30.0
5. 从url地址安装包
pip install https://github.com/requests/requests/archive/v2.30.0.zip
6. pip install
命令的常用选项
主义:以英文逗号分隔的2部分,前面短横线(-)的是短选项,后边双横线的是长选项(--),两者等同,使用任意一个均可以
-e, --editable
-e
或 --editable
是 install
命令的一个选项,用于以可编辑模式(editable mode)安装项目。 -e
是短选项,--editable
是长选项,二者等同,用任意一个即可。
可编辑模式通常被称为 setuptools
的 develop mode
,它允许你在本地进行开发,并在修改代码后立即看到变化,而不需要重新安装包。
--dry-run
--dry-run
是 install
命令的一个选项,用于在不实际安装任何内容的情况下,仅打印出安装的过程。用于检查安装过程中可能发生的情况,而不实际修改你的 Python 环境。
-r, --requirement
该选项用于从指定的文件中批量安装依赖包,例如 pip install -r requests.txt
从给定的requirements.txt文件中安装指定的依赖包。此选项可多次使用。
文件名任意,只要是符合格式即可,一般使用 requirements.txt
名称
-U, --upgrade
该选项将指定软件包升级到最新版本。
--force-reinstall 强制重新安装指定的软件包,即使它们已经是最新的。
-I,--ignore-installed
忽略已安装的软件包,并覆盖它们。如果现有软件包的版本不同或使用不同的软件包管理器安装,这可能会破坏系统!
--trusted-host
该选项用于将某个主机或主机:端口标记为可信赖的。在某些情况下,软件包索引服务器可能没有有效的HTTPS证书或使用非标准的端口。使用此参数可以告诉pip信任该主机,即使它没有有效的证书或使用了非标准端口。
使用方法:
pip install package_name --trusted-host hostname
例如,要安装requests包并信任阿里镜像
mirrors.aliyun.com
的主机,可以运行以下命令:
pip install requests --trusted-host mirrors.aliyun.com
--no-deps
该选项用于指示 pip
在安装包时不安装其依赖项。 通常,pip
会自动解析并安装包所依赖的其他包,以确保安装的包能够正常运行。使用 --no-deps
选项将禁止这种自动依赖项安装行为。
--no-warn-conflicts 不警告版本冲突问题
-i, --index-url
用于指定从哪个 url地址安装软件包。默认是官方pip库,可替换为阿里云镜像等,比如示例是清华大学镜像
--extra-index-url
除了 --index-url
之外,额外使用的软件包索引的 URL。
--no-index
忽略软件包索引,如果你不希望从指定的地址,比如官方镜像、阿里云镜像中寻找软件包,而是从其他指定的位置,那么可以使用该选项,并使用 --find-links
指定要寻找的位置,本地位置或url
-f, --find-links
指定从什么 URL 或本地地址寻找依赖包,如果是url则解析指向 sdist (.tar.gz) 或 wheel (.whl) 文件等归档文件的链接。如果是本地路径或 file:// URL 的目录,则在目录列表中查找存档。不支持指向 VCS 项目 URL 的链接。
卸载依赖包
使用uninstall
命令执行卸载
pip unstall packageName
卸载时默认会弹出一个提示,等待你输入 Y 后才开始卸载,可以加入 -y 选项,不提示而是直接卸载
pip unstall -y packageName
更新包
实际是使用 install
命令的选项--upgrade
实现
pip install --upgrade packageName
查看包信息
命令形式pip show packageName
导出一个项目的所有依赖
将一个项目中安装的所有依赖包导出到一个txt文件中,以方便分发给其他人安装。
命令 pip freeze > 文件.txt
, 文件名随意,但一般使用requirements.txt
从 requirements.txt 安装所有依赖
正如上方所述,此命令用于安装freeze
导出的txt文件,批量安装所有依赖包
pip install -r requirements.txt
requirements.txt 格式详细说明见 pip.pypa.io/en/latest/r…
遇到冲突或不兼容怎么办
使用选项禁止检测冲突
如果确定该版本的包可以正常使用,可以简单的屏蔽检测,使用 pip install -no-warn-conflicts packagename
重新安装兼容的版本
使用--force-reinstall
选项重新安装兼容的版本 pip install --force-reinstall packagename
遇到版本不存在怎么办
如下图,提示不存在指定的这个版本,然后还列出了其他一堆版本
这种情况一般发生在使用了国内镜像源的时候,此时可以重新安装以列出的某个版本,同该不存在的版本最接近的那个,使用==版本号
如针对上图,可执行 pip install selenium==3.14.1
,即可成功安装
pip 通用选项
通用选项代表在任意pip命令中均可使用
-h, --help
查看帮助文档
--require-virtualenv
只允许 pip
只在虚拟环境中运行;否则退出并显示错误。
--python
使用指定的 Python 解释器运行 pip
。
pip --python /path/to/python3.9 install SomePackage
-v, --verbose
安装包时提供更多输出,可以叠加使用多次(最多3次即vvv)。
pip -v install SomePackage
pip -vvv install SomePackage
-V, --version
显示版本信息后退出
-q, --quiet
安装包时减少输出信息,静默模式,更少输出
--log
将安装时的输出信息记录到某个文件中,以方便查看错误信息 如 --log rizhi.txt
--proxy
指定安装使用的代理,墙内可能有时会用到,如 --proxy http://127.0.0.1:10809
--retries
网络连接失败时的重试次数,例如 pip --retries 3