如何在 Windows 中安装 Python 包管理器 pip

我被代码海扁署名-非商业-禁演绎
阅读 10:00·字数 3002·更新 
Bilibili 空间
关注 950

判断 Windows 中是否安装了 pip

对于 Windows 系统而言,如果你在 Python 的官方网站下载并安装了 Python 的最新可执行安装包,那么默认会附带安装 pip,除非在自定义安装时未选中 pip 组件,或采用了嵌入式安装包,NuGet 等其他安装方式。

如果不确定 Windows 是否安装了 pip 或 pip 是否可用,可以在命令提示符中输入命令python -m pip --version。当 pip 可用时,其版本和所在的目录将被显示,否则可能会收到提示No module named pip

python -m pip --version
pip 23.2.1 from \Lib\site-packages\pip (python 3.11)

运行 pip 的可执行文件以判断 Windows 中是否安装了 pip

上述命令python -m pip --version会让 Python 尝试运行模块pip(你可以简单的将安装 pip 理解为安装pip模块),除此之外,直接运行 pip 的可执行文件也是判断 Windows 是否安装了 pip 的一种方式,只需要在命令行中输入命令pip --version即可(显示 pip 的版本和目录,或类似于“命令不存在”的消息)。事实上,pip 可执行文件本身还是会运行 Python 模块pip,其运行效果与直接运行模块pip相同,只不过在命令书写上更加简便。

当然,在某些安装方式中,pip 可行执行文件并非安装的必需项,因此,命令行同样可能会提示类似于“命令不存在”的消息,如果之前安装 pip 时没有选择安装对应的 pip 可执行文件。

pip --version
pip 23.2.1 from \Lib\site-packages\pip (python 3.11)

在 Windows 中安装 pip 后运行 pip 依然提示 No module named pip

如果的确已在 Windows 中安装了 pip,并且运行命令python -m pip --version后依然提示No module named pip,那么问题可能在于 Python 的模块搜索路径并未包含模块pip所在的目录,此时可以检查 Python 模块搜索路径,以判断是否需要对模块搜索路径进行修改。

模块搜索路径

想要详细了解 Python 的模块搜索路径,你可以查看Python 指南Python 模块搜索路径介绍,Python 模块搜索路径中的目录有哪些一节。

使用 Python ensurepip 包在 Windows 中安装 pip

你可以简单的使用包ensurepip来手动安装 pip,但需要确保他的存在,因为并非所有安装都含有ensurepip,比如包含最少组件的嵌入式安装包。此外,包ensurepip应该能够被 Python 找到,如果出现了类似于No module named ensurepip这样的提示,请检查模块搜索路径是否包含ensurepip所在的目录。

在默认情况下,如果 Python 能在 Windows 中找到任何可用的 pip,那么ensurepip包将不会继续执行安装(即便指定不同的安装位置),除非使用--upgrade选项来尝试进行更新。

python -m ensurepip <options>
--default-pip,--altinstall 选项

--default-pip选项表示将安装pip.exepip<X>.exepip<X>.<Y>.exe,三个文件至Scripts文件夹,如果使用--altinstall选项,则仅会安装pip<X>.<Y>.exe,其中X为主版本号,Y为次版本号。当以上两个选项均未被采用时,将安装pip<X>.exepip<X>.<Y>.exe

--upgrade 选项

使用选项--upgrade可以让ensurepip尝试将当前已经安装的 pip 更新至ensurepip包所提供的最新版本(可能与 PyPI 上的 pip 的最新版本不同)。

--root 参数,--user 选项

--root参数和--user选项用于更改 pip 的安装位置,其中--root参数指定一个目录,pip 将被安装至此,其目录结构将与 Python 本身的安装目录结构保持一致,--user选项(在虚拟环境中无法使用)表示将 pip 安装至 Windows 用户应用数据文件夹。

Python ensurepip 包所安装的 pip 由 ensurepip 包自身提供

即便在没有网络的情况下,你依然可以通过 Python 的ensurepip包在 Windows 中安装 pip,因为 pip 已经包含在包ensurepip中,这意味着通过ensurepip安装的 pip 可能并非最新版本。

将 Scripts 目录添加至 Windows 的 PATH 环境变量

如果安装所产生的Scripts文件夹的路径,未包含在 Windows 的环境变量PATH中,那么可能将无法使用 pip 的可执行文件,因为命令行不能定位他们,此时需要手动将Scripts目录添加至 Windows 环境变量PATH

PATH 环境变量

要了解如何设置环境变量PATH,你可以查看编程指南操作系统 PATH 环境变量介绍,以及设置 PATH 环境变量一节。

使用 Python 脚本文件 get-pip.py 在 Windows 中安装 pip

如果缺少 Python 包ensurepip,那么通过下载并执行get-pip.py文件,同样可以完成 Windows 中的 pip 安装。你只需要选择一个目录下载保存get-pip.py,然后启动 Windows 的命令提示符并转至该目录,最后使用 Python 执行get-pip.py即可。

get-pip.py的安装效果与使用包ensurepip基本类似,pip.exepip<X>.exepip<X>.<Y>.exe会被安装至Scripts文件夹。但除此之外,get-pip.py还会安装 wheel 和 setuptools,其中wheel.exe位于Scripts,而 setuptools 仅存在于Lib\site-packages中。

bootstrap.pypa.io/get-pip.py

python get-pip.py <options>
--no-setuptools 选项

--no-setuptools选项表示不会尝试在安装 pip 的同时安装 setuptools。

--no-wheel 选项

--no-wheel选项表示不会尝试在安装 pip 的同时安装 wheel。

如何使用 Python 脚本文件 get-pip.py 在 Windows 中安装特定版本的 pip,wheel 和 setuptools?

在通过 Python 运行get-pip.py文件时,你可以输入版本条件来选择 pip,wheel 和 setuptools 的版本,比如,"pip==21.0"表示安装版本为21.0的 pip,"pip<24"表示安装版本小于24的最大版本的 pip,"pip>=19.1"表示安装版本大于等于19.1的最大版本的 pip。

python get-pip.py <packages>
packages 值

packages包含了 pip,wheel 和 setuptools 包的版本信息,每个版本信息可使用"括住并使用空格进行分隔,如果未指定版本则使用最新版本,比如,python get-pip.py "pip>=23" "wheel"会安装 wheel 的最新版本(由于未给出 setuptools,因此 setuptools 仅在不存在时被安装,但有趣的是,无论是否给出 pip,pip 均会被安装)。需要指出,get-pip.py并不会判断需要安装的版本是否比已安装的版本更新,原有的版本会被卸载,即便被安装的版本更旧。

使用脚本文件 get-pip.py 在 Windows 中安装其他 Python 包

是的,你可以使用脚本文件get-pip.py安装任意其他 Python 包,比如python get-pip.py "numpy"会同时安装包pipnumpy,这可能让人觉得奇怪,但却是可行的。

运行 Python 脚本文件,模块,包

想要了解更多关于命令行执行 Python 脚本的信息,你可以查看如何通过命令行运行 Python 脚本文件,模块,包一节。

pip 在 Windows 中的安装位置

默认情况下,pip 将被安装到 Python 所在的目录,其可执行文件和源码分别位于ScriptsLib\site-packages文件夹。

pip 在 Windows 中的安装位置取决于安装时运行的 Python

当 Windows 环境变量PATH包含多个指向 Python 的路径时,请确认命令行所执行的 Python 的位置,因为 pip 可能被安装至该处,当使用ensurepipget-pip.py进行手动安装时。这是非常重要的,尤其在拥有多个版本的 Python 的情况下。

讲解视频

如何使用脚本文件 get-pip.py 在 Windows 中安装 Python 包管理器 pip?安装步骤,安装选项以及 pip 安装位置简介·Bilibili