`pip install --upgrade pip` 与 `python -m pip install --upgrade pip` 的区别。

5

这两者有什么不同:

pip install --upgrade pip

python -m pip install --upgrade pip

为什么通常青睐于使用 python -m pip install --upgrade pip呢?


https://dev59.com/Dmsz5IYBdhLWcg3w3bxb - phd
这类问题在stackoverflow上是不被鼓励的。对于这种主观性问题,你应该自己进行研究。 - Jimit Vaghela
1
https://snarky.ca/why-you-should-use-python-m-pip/ - sinoroc
2
@JimitVaghela:这不是主观的;选择一个而不是另一个有实际客观的原因。 - ShadowRanger
3个回答

7

区别在于 pippython -m pip;其余的命令无关紧要。更喜欢后者的原因是确保你通常使用的 python 是提供你调用的 pip 模块的那个。否则,如果你在 PATH 中找到的 pip 可执行文件来自一个不相关或过时的 Python 安装,可能会安装包,但你常规的 python 命令将无法找到它们(因为它们是为非默认 Python 安装而安装的)。

在 Windows 上,这种区别更加重要,因为在执行期间无法替换 pip.exe,因此通过带有 -m 的模块来执行 pip 使得可以直接进行升级(通常在 Windows 上,你会使用 the py.exe launcher,如 py -3 -mpip,根据需要更改 -3 以调用要执行升级的特定版本的 Python)

您还可以修改第二个命令以调用特定的Python可执行文件名称(python2.7python3.8),甚至可以使用绝对路径,如果您可能在多个位置安装了相同名称的版本。

这正是我在寻找的答案类型。非常感谢你。 - moth

0

第一个

pip install --upgrade pip

调用pip作为命令。实际调用的Python解释器不是显式的。第二个是显式地调用Python解释器,因此您知道调用的是哪一个。

除非默认的Python与pip脚本使用的Python不同,否则模块中的__main__.pypip脚本都指向相同的入口点,不应该有任何区别。


这在安装了多个Python版本的情况下非常重要。 - Cireo

-1
如果我没记错的话,pip install --upgrade pippython -m pip install --upgrade pip是一样的,除非你指定了pip或python的版本。 后者更好,因为它尝试升级与指定的Python版本相关联的pip(例如,python3.7 -m pip install --upgrade pip),即使主要的Python版本不同(python命令可能引用任何Python版本)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接