科普:python -m pip install 与pip install 安装的区别
Python的第三方软件包(库)通常需要用pip安装,但有两种不同的方式,例如:python -m pip install numpy 和 pip install numpy 本质上都是用于安装 numpy 库的命令,但它们的调用方式和适用场景存在细微区别,核心差异在于“如何定位并使用 pip 工具”。
核心区别:调用 pip 的方式不同
-
pip install numpy
直接调用系统中名为pip的可执行程序(脚本文件),该程序会关联到某个特定的 Python 环境(取决于系统中pip的默认绑定)。 -
python -m pip install numpy
先通过python命令指定一个具体的 Python 解释器,再通过-m参数让这个解释器运行内置的pip模块(将pip作为 Python 标准库的一部分调用)。
实际场景中可能的差异
-
多 Python 版本共存时,目标环境更明确
当系统中安装了多个 Python 版本(如 Python 3.8、Python 3.10 或同时有 Python 2 和 Python 3)时:pip install numpy可能默认绑定到系统中“优先级最高”的 Python 版本(比如系统自带的 Python),未必是你当前想用的版本。python -m pip install numpy会严格跟随你输入的python命令所指向的版本。例如:- 若运行
python3.10 -m pip install numpy,则明确安装到 Python 3.10 环境中; - 若在虚拟环境中激活后运行
python -m pip,则必然安装到当前虚拟环境中。
- 若运行
这是两者最常用的区别——
python -m pip能更精确地控制安装目标环境。 -
解决
pip可执行文件路径问题
某些情况下,pip可执行程序可能未被添加到系统PATH环境变量中,直接运行pip会提示“命令找不到”。
但只要python命令能正常运行(说明 Python 解释器在PATH中),python -m pip就一定能生效(因为pip是 Python 标准库的一部分,解释器能找到它)。 -
避免
pip与 Python 版本不匹配
极少数情况下,系统中可能存在“pip绑定的 Python 版本与你预期的不一致”的问题(比如pip属于 Python 2,但你想给 Python 3 安装库)。
此时python -m pip能彻底避免这种不匹配——因为它直接使用你指定的 Python 解释器自带的pip模块。
建议
- 若你的系统中只有一个 Python 版本,且
pip明确绑定到该版本,两者效果完全一致。 - 若存在多 Python 版本(特别是虚拟环境中),推荐使用
python -m pip install xxx,能更精确地控制安装到哪个环境,减少版本混淆问题。 - 当直接运行
pip提示“命令不存在”时,用python -m pip是更可靠的替代方案。
更多推荐



所有评论(0)