pip install ...
调用的是 pip
可执行文件,该文件需要在您的路径上。 python -m pip ...
调用 与此 Python 安装相对应的 pip 应用程序(即 Python 将使用其正常导入机制来解析 pip
包)。
通常这两种方法是相同的,但想一想在执行了 alias pip=echo
命令后会发生什么;python -m pip ...
方法仍然可以工作。
例如,在虚拟环境中,如果您想将软件包安装到另一个 Python 安装中,则可以使用 python -m pip ...
方法:
(somevenv) $ pip install ... # installs into 'somevenv'
(somevenv) $ /path/to/othervenv/bin/python -m pip install ... # installs into 'othervenv'
最终,python -m pip ...
始终会使用“正确”的 Python 安装,假设你想要使用 python
指向的内容。
Scripts
目录和Python的主目录,例如以下目录:c:\Program Files\Python38\Scripts\
c:\Program Files\Python38\
PATH
变量中已经包含了这两个路径(第一个是pip
可执行文件的路径,第二个是python
可执行文件的路径),那么两者都已经准备好了。pip install [options] <package>
python -m pip install [options] <package>
将执行相同的代码,所以看起来它们是完全等价的。但是有一个(且仅有一个)例外 - 如果你想要升级pip本身。
在这种情况下,你必须启动python
,因为相反的情况下(直接启动pip
),正在运行的pip
无法重写自身:
python -m pip install --upgrade pip ;; correct, will upgrade
pip install --upgrade pip ;; incorrect, will NOT upgrade