pip3 vs python3 -m pip vs python3.7 -m pip

来自你

在我的系统(Linux Mint)上,我有ptyhon2,python3.6python3.7.

muyustan@mint:/usr/lib$ pip -V

Command 'pip' not found, but can be installed with:

sudo apt install python-pip

muyustan@mint:/usr/lib$ pip3 -V
pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)
muyustan@mint:/usr/lib$ python3 -m pip -V
pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)
muyustan@mint:/usr/lib$ python3.7 -m pip -V
pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.7)
muyustan@mint:/usr/lib$ 

从这些,我知道这pip是保留给python2它的,它没有安装。没问题,因为我不在乎python2

看起来分别有两个不同pippython3.6python3.7

但是,当我检查文件夹时/usr/lib/python3/dist-packages,我发现只有一个pip.

muyustan@mint:/usr/lib$ ll /usr/lib/python3/dist-packages | grep "pip"
drwxr-xr-x 11 root root   4096 Mar 21 15:24 pip/
drwxr-xr-x  2 root root   4096 Mar 21 15:24 pip-9.0.1.egg-info/

我对pip3,python3 -m pip感到非常困惑python3.7 -m pip

我假设python3是指python3.6.

所以我的问题是,

  1. 我有 3 个不同的pips 吗?
  2. 我应该使用哪一种?
  3. 有什么实际的差异pip之间python3.6python3.7
和运气

对于这个主题,我目前所知道的最好的参考资料是Brett Cannon的文章“ Why you should usepython -m pip

简而言之:

  • 不要安装pip(永远)
  • 而是创建虚拟环境,它们预装pip,使用它专门在这个虚拟环境中安装 Python 项目,并且这个pip可以安全升级
  • 不要直接使用任何pip, pip3,pip3.7脚本(永远,除非您 100% 确定它与正确的 Python 解释器相关联)
  • 而是使用pip可执行模块
    • path/to/venv/bin/python -m pip somecommand ...
    • path\to\venv\Scripts\python.exe -m pip somecommand ...
    • (这也适用于其他工具:path/to/venv/bin/python -m pytest
    • (在bash脚本、tox配置、文档等文件中更是如此pip仅用于交互式命令行的快捷方式
    • (使用显式路径还可以使用pip或其他此类工具而无需激活虚拟环境)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章