python中的包管理器:pip使用小结

零 Python教程评论64字数 4072阅读13分34秒阅读模式

python中的包管理器:pip使用小结

pip 是 Python 编程语言的官方包管理工具,它使得安装、更新和卸载第三方库变得简单而高效。它在功能上类似于 nodejs 中的 npm 或 PHP 中 Composer,是 Python 开发者不可缺少的工具。文章源自灵鲨社区-https://www.0s52.com/bcjc/pythonjc/17478.html

pip 的安装与配置文章源自灵鲨社区-https://www.0s52.com/bcjc/pythonjc/17478.html

大多数情况下,pip 已经作为 Python 环境的一部分预装好了,无需进行额外的安装步骤。然而,为了确保 pip 的使用,需要确保 Python 和 pip 都被添加到了系统的环境变量中。这样,就可以在命令行界面中直接调用 pip 命令。文章源自灵鲨社区-https://www.0s52.com/bcjc/pythonjc/17478.html

本文将详细记录如何使用 pip 来安装、卸载和更新 Python 项目所需的依赖包,以及常用的pip命令和选项。文章源自灵鲨社区-https://www.0s52.com/bcjc/pythonjc/17478.html

设置pip镜像源

pip默认安装源在国外,国内安装可能比较慢,若想加速可更换为国内镜像,比如阿里云、清华大学镜像等文章源自灵鲨社区-https://www.0s52.com/bcjc/pythonjc/17478.html

方法:文章源自灵鲨社区-https://www.0s52.com/bcjc/pythonjc/17478.html

打开文件 C:Users你的用户名AppDataRoamingpippip.ini,如果不存在 pip文件夹则创建该文件夹并新建 pip.ini文件,如果存在pip文件夹但不存在pip.ini文件,同样新建该文件,然后输入文章源自灵鲨社区-https://www.0s52.com/bcjc/pythonjc/17478.html

ini

代码解读
复制代码
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/

[install]
trusted-host = mirrors.aliyun.com

表示镜像源用阿里源文章源自灵鲨社区-https://www.0s52.com/bcjc/pythonjc/17478.html

查看帮助信息

命令行窗口中输入 pip -h即可查看帮助信息,非常详细。文章源自灵鲨社区-https://www.0s52.com/bcjc/pythonjc/17478.html

image.png文章源自灵鲨社区-https://www.0s52.com/bcjc/pythonjc/17478.html

要查看某个命令的帮助信息,可输入pip 命令 -h,比如查看 install 命令的帮助信息 pip install -h

image.png

安装依赖包:install命令

1. 安装一个或多个依赖包

pip install 包名1 包名2

2. 安装特定版本的依赖包

pip install 包名==版本号

版本号规则:

~=: 匹配兼容版本,一般是第一个点号之前相同的版本均可如 ~=2.0

==: 版本完全匹配 如 ==3.24.0

!=: 排除指定的版本 如 !=3.24.0

<=, >=: 小于某个版本并且大于某个版本 <=2.6,>=2.1

<, >: 类似上个

===: 匹配不符合版本义控制的某个版本号。==="prev6"

示例安装 requests 包

ini

代码解读
复制代码
    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

image.png

导出一个项目的所有依赖

将一个项目中安装的所有依赖包导出到一个txt文件中,以方便分发给其他人安装。

命令 pip freeze > 文件.txt, 文件名随意,但一般使用requirements.txt

从 requirements.txt 安装所有依赖

正如上方所述,此命令用于安装freeze导出的txt文件,批量安装所有依赖包

pip install -r requirements.txt

requirements.txt 格式详细说明见 pip.pypa.io/en/latest/r…

遇到冲突或不兼容怎么办

image.png

  1. 使用选项禁止检测冲突

如果确定该版本的包可以正常使用,可以简单的屏蔽检测,使用 pip install -no-warn-conflicts packagename

  1. 重新安装兼容的版本

使用--force-reinstall 选项重新安装兼容的版本 pip install --force-reinstall packagename

遇到版本不存在怎么办

如下图,提示不存在指定的这个版本,然后还列出了其他一堆版本

image.png

这种情况一般发生在使用了国内镜像源的时候,此时可以重新安装以列出的某个版本,同该不存在的版本最接近的那个,使用==版本号

如针对上图,可执行 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

零
  • 转载请务必保留本文链接:https://www.0s52.com/bcjc/pythonjc/17478.html
    本社区资源仅供用于学习和交流,请勿用于商业用途
    未经允许不得进行转载/复制/分享

发表评论