pip3 和 python3 -m pip 的区别

新手上路,请多包涵

我正在尝试使用 pip 和 python3 安装一些包。我使用的是 MacOS,所以默认情况下,当我运行 pip 时,它使用我的 Python 2 版本。

我已经能够使用以下命令在 python 3 中安装一个包:

 $ pip3 install package_name

但是,我可以通过(至少看起来)做同样的事情:

 $ python3 -m pip install package_name

我想知道 pip3python3 -m pip 是否具有相同的效果。

原文由 lmiguelvargasf 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

他们是一样的。如果您查看 bin 文件夹中的 pip3 文件,它会调用 pip 模块中的 main 函数。

pip3 install package_name 运行bin文件夹中的pip3文件:

 # bin/pip3
# or bin/pip if using pip install package_name

import re
import sys

from pip import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

python3 -m pip install package_name 运行 pip 模块的 __init__.py 文件。

 # pip/__init__.py
if __name__ == '__main__':
    sys.exit(main())

它们都运行相同的 main() 函数

原文由 tihom 发布,翻译遵循 CC BY-SA 3.0 许可协议

正如@tihorn 所说, pip3python3 -m pip 应该 是一样的。至少有一个例外:如果它们不在同一路径中。我有以下设置:

 $ which pip3
/usr/bin/pip3
$ which python3
/home/username/anaconda3/bin/python3

使用 pip3 安装模块并使用 pip3 freeze 验证后,我无法在运行时访问它们 python3 my_script.pypython3 -c 'import my_module' 我遇到了 ModuleNotFound 错误。

原文由 craq 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题