鱼C论坛

 找回密码
 立即注册
查看: 173|回复: 1

[技术交流] 为什么应该使用python -m pip而不是pip/pip3?

[复制链接]
发表于 2024-8-19 02:09:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
为什么应该使用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 项目稳定性和可维护性的最佳实践。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-8-20 17:13:16 | 显示全部楼层
前提是进入正确的虚拟环境内,直接使用pip就行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-16 02:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表