为什么应该使用python -m pip而不是pip/pip3?
为什么应该使用python -m pip而不是pip/pip3?原文:https://snarky.ca/why-you-should-use-python-m-pip/
加拿大的核心开发者 Mariatta 在 Twitter 上询问关于 python -m pip 的问题:
于是,原文作者写了这篇文章来回答这个问题。
下面是简单的总结,感兴趣的鱼油可以参考原文链接。
什么是 python -m pip?
首先,python -m pip 会使用你指定的默认 Python 解释器(版本)来执行 pip。
如果不熟悉 -m 标志及其工作原理,可以阅读这份文档(传送门)。
为什么要使用 python -m pip 而不是 pip/pip3?
第一个原因
当你有多个 Python 版本(比如 3.7 和 3.8)时,直接运行 pip 命令可能不清楚它会使用哪个 Python 解释器。
使用 python -m pip 可以明确指定使用哪个 Python 版本(小甲鱼:py -3.13 -m pip)。
第二个原因
如果有多个 Python 安装,运行 pip 依赖于系统的 PATH 设置,可能导致不确定性。
使用 python -m pip 避免了这种不确定性。
第三个原因
在 Windows 上,直接运行 pip install --upgrade pip 可能无法更新 pip,因为 pip.exe 正在运行。
使用 python -m pip install --upgrade pip 可以成功更新,因为正在运行的是 python.exe。
为什么在虚拟环境中同样建议使用 python -m pip 呢?
即使在激活的虚拟环境中,使用 python -m pip 仍然是最佳实践。
在 Windows 上,它确保 pip 能正确更新;在其他系统上,它提供一致性,防止因忘记激活虚拟环境而出错,并帮助他人学习正确的方法。
使用 -m 也可以避免自动化脚本中的环境问题,保持明确性和可靠性。
作者的一些额外建议
避免全局安装:不建议将包安装到全局 Python 解释器中,以免破坏系统或造成包冲突。
使用虚拟环境或 conda 环境:隔离项目的依赖,确保项目间不会相互干扰。
使用 pipx 安装工具:为每个工具创建独立的虚拟环境,避免工具之间的冲突。
结论
使用 python -m pip 和虚拟环境是确保 Python 项目稳定性和可维护性的最佳实践。
前提是进入正确的虚拟环境内,直接使用pip就行。
页:
[1]