zoukankan      html  css  js  c++  java
  • 为什么您应该使用`python -m pip`

    python -m pip是什么?

    首先,python -m pip会使用您指定为python的Python解释器来执行pip。因此,/usr/bin/python3.7 -m pip表示您正在执行位于/usr/bin/python3.7的解释器的pip。如果您不熟悉这个标志以及它是如何工作的,您可以阅读有关-m的文档(它非常方便)。

    为什么使用 python -m pip 而不是 pip/pip3?

    所以您可能会说,“好的,但是我不能通过执行pip命令来运行pip吗?”答案是“可以,但是您对它的控制会更少”,我将用一个例子来解释我所说的“控制会更少”是什么意思。

    假设我已经安装了Python的两个版本,比如Python 3.7和3.8(由于Python会预先安装在macOS和Linux上,这对人们来说是很常见的,更不用说您之前已经安装了Python 3.7,您还是会安装Python 3.8来使用它)。现在,如果您在您的终端中键入pip,那么它将为哪个Python解释器安装库呢?

    在没有更多的细节的情况下,您的答案是您不知道。首先,您必须知道我的PATH设置是什么,比如/usr/bin是在/usr/local/bin之前还是之后(这些是安装Python的常见位置,通常优先安装于/usr/local/目录)。好的,只要您记得您安装Python 3.7和3.8的地方,它们是不同的目录,您就会知道哪个版本的pip在PATH上先出现。假设您都是手动安装它们的,也许您的操作系统附带了Python 3.7.3,而您又安装了Python 3.7.5。在这种情况下,Python的两个版本都安装在/usr/local/bin中。现在您能告诉我pip与哪个解释器相关联吗?

    答案是您仍然不知道。除非您知道您在什么时候安装了每个版本,从而就会知道被写到/usr/local/bin/pip的最后一个pip副本是什么,否则您就不知道哪个解释器的pip将被用于执行pip命令。现在您可能会说,“我总是会安装最新的版本,这意味着Python 3.8.0是最后安装的,因为它比3.7.5更新。”好的,但是当Python 3.7.6出现时会发生什么呢?您的pip命令将会从使用Python 3.8变为使用Python 3.7。

    但是当您使用python -m pip时,而python是您希望使用的特定解释器时,所有上述的模糊性都消失了。如果我使用python3.8 -m pip,那么我就知道pip将会在我的Python 3.8解释器中使用和安装(如果我使用的是python3.7,那么情况也一样)。

    如果您是在Windows上运行,使用python -m pip还有一个额外的好处,那就是它可以让pip自我更新。基本上,当您执行pip install --upgrade pip时,系统会认为pip.exe正在运行,因此,Windows是不会让您覆盖pip.exe的。但是,如果您执行python -m pip install --upgrade pip,就可以避免这个问题,因为正在运行的是python.exe,不是pip.exe。

     转载:https://mp.weixin.qq.com/s/-gpqtGwiGYuGLHrlcjUZ1A

  • 相关阅读:
    winform中文本框添加拖拽功能
    jQuery返回顶部代码
    判断IP地址是否在指定范围内的方法
    jQuery提示通知插件jBox
    Windows 8.1 SecureBoot未正确配置的解决方法
    操作系统下载
    js中(function(){…})()立即执行函数写法理解
    。net MVC 序列化 反序列化
    js点击button按钮跳转到页面代码
    单例模式
  • 原文地址:https://www.cnblogs.com/thespace/p/12490999.html
Copyright © 2011-2022 走看看