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。

python里面的pip是什么意思_为什么您应该使用`python -m pip`相关推荐

  1. python里面的dict和set

    python里面的dict和set dict Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速 ...

  2. python里面的tuple与list对比

    python里面的tuple与list对比 tuple 另一种有序列表叫元组:tuple.tuple和list非常类似,但是tuple一旦初始化就不能修改,比如同样是列出同学的名字: >> ...

  3. python里面的list

    python里面的list list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示: ...

  4. 小福利,运用python里面的talib模块和cufflinks模块实现stock可视化分析

    小福利,运用python里面的talib模块和cufflinks模块实现stock可视化分析 import pandas as pd from sqlalchemy import create_eng ...

  5. python里面的pip是什么意思_“pip install”和“python -m pip install”有什么区别?

    我有一个本地版本的Python 3.4.1,我可以运行python -m pip install,但是我无法找到pip二进制文件来运行pip install.这两者有什么区别? 解决方法: 他们完全一 ...

  6. python正则表达式中的r与转义字符_左手用R右手Python系列13——字符串处理与正则表达式...

    原标题:左手用R右手Python系列13--字符串处理与正则表达式 杜雨,EasyCharts团队成员,R语言中文社区专栏作者,兴趣方向为:Excel商务图表,R语言数据可视化,地理信息数据可视化.个 ...

  7. python 去掉list元素的双引号_一天快速入门 Python

    Python 是由Guido Van Rossum在 90 年代早期设计,现在是最常用的编程语言之一.特别是人工智能的火热,再加之它的语法简洁且优美,实乃初学者入门AI必备的编程语言. Python基 ...

  8. python零基础入门五小时教学_五小时轻松入门Python

    Python 是由Guido Van Rossum在 90 年代早期设计,现在是最常用的编程语言之一.特别是人工智能的火热,再加之它的语法简洁且优美,实乃初学者入门AI必备的编程语言. Python基 ...

  9. python能在ipad上运行吗_如何用iPad运行Python代码?

    其实,不只是iPad,手机也可以. 痛点 我组织过几次线下编程工作坊,带着同学们用Python处理数据科学问题. 其中最让人头疼的,就是运行环境的安装. 实事求是地讲,参加工作坊之前,我已经做了认真准 ...

最新文章

  1. 收藏 | CNN的一些可视化方法!
  2. 习题:编程求圆周长、圆面积、圆球体积、设圆半径r=1.5。要求:用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数后2位...
  3. flink 写入到es_《从0到1学习Flink》—— Flink 写入数据到 Kafka
  4. 2019年总结:把能努力的都努力好,最终等待命运垂青
  5. 微软协助谷歌开发ARM平台Chrome浏览器
  6. 小菜鸡进阶之路.文件操作遇到坑
  7. PyTorch入门-词向量
  8. struts2、hibernate工作原理和流程
  9. P2057 [SHOI2007]善意的投票 最小割
  10. ERROR Request failed with status code 404 :at createError (node_modules\axios\lib\core\createError.
  11. 基于Ajax的模糊查询输入控件(补充)
  12. 拓端tecdat|matlab递归神经网络RNN实现:桨距控制控制风力发电机组研究
  13. 模拟https类型的get,post请求时,碰到证书不信任,无法正常获取返回内容的异常
  14. Cropper使用(图片裁切)
  15. Selenium+iframe准确定位元素
  16. c语言数据文件是,C语言数据文件操作.ppt
  17. SRAM随机存储器的特点及结构
  18. SQL Server Intergration Services(SSIS)
  19. 一个初学者的留言板(登录和注册)
  20. 什么是XGBoost

热门文章

  1. 【算法系列】数据预处理全面介绍
  2. python 气泡图 聚类_R可视化 | 气泡图
  3. Windows防火墙导致FTP服务器不能访问的解决方法
  4. 【Pytorch】Tensor.contiguous()使用与理解
  5. 人工智能可以应用在哪些领域?
  6. 微信小程序—仿美团酒店入住日期时段选择
  7. 日知录(16):CAD基础工具
  8. GEO数据库数据下载
  9. Win10以太网属性空白怎么回事
  10. 深入探索Android卡顿优化(下)