原标题:这样安装 Python 库才是最正确的哦~

分享一篇之前的文章,里面的这个Python知识点,可能很多人都还不清楚。

平常我都是直接执行 pip install安装的第三方库,很多教程也是这么介绍的,一直以来我都认为这是标准的、正确的安装 Python 第三方库的姿势。直到我最近看到Python核心开发者Brett Cannon 写的一篇文章。

简单总结来说,他认为其实最正确的安装方式是使用 python-m pip来执行 pip 命令,无论什么情况下均是如此。

他在文章里大致提出了以下几个建议:

建议用 python - m pip 安装三方库

务必使用虚拟环境,不要安装至系统 Python

建议用 pipx 独立安装工具

建议用 python - m venv 创建虚拟环境

可以将容器整体作为一个环境,跳过虚拟环境

我简单解释下每个建议背后的理由。

1. 建议用 python-m pip安装三方库

理由是这样做,可以实现更加准确地控制库所安装的位置。

不少人的电脑里,会同时安装不同版本的 Python。少数极端的用户甚至会安装不同的小版本,如 3.7 和 3.7.4。这是直接用 pip的话,你自己可能都不清楚最终安装到了哪个版本的Python 下面。

而 python-m pip命令,可以让你直接指定要安装到哪个版本。

2. 务必使用虚拟环境,不要安装至系统 Python

这个建议应该很多人都认同,在实践中也是这样执行的。如果不用虚拟环境隔离的话,系统版本的三方库会变得特别的庞杂,甚至出现系统依赖库的版本不合理,导致系统崩溃的严重问题。

3. 建议用 pipx 独立安装工具

如果你想尝试 black、mypy 等开发工具,可以考虑通过 pipx 将这些工具各自安装到独立的环境中,同时又能够直接在系统环境下调用终端的入口。

4. 建议用 python-m venv创建虚拟环境

Brett 个人更倾向于使用 python-m venv命令创建虚拟环境,理由和第一点建议相同,可以获得更大的控制权,精确指定所使用的版本。

当然,使用 virutalenv 也是一个非常普遍的方式。

5. 可以将容器整体作为一个环境,跳过虚拟环境

如果项目是容器化开发的,那么把每个容器当做成一个个独立的虚拟环境使用也是没有问题的。在容器里没有必要再单独去创建虚拟环境了。

当然前提是,你不要安装到系统自带的 Python 中。

大佬的文章链接:https://snarky.ca/why-you-should-use-python-m-pip/

责任编辑:

这样安装python库才是最正确的哦_这样安装 Python 库才是最正确的哦~相关推荐

  1. 下列关于python运算符的使用描述正确的是_以下关于 Python 字符串的描述中,正确的是( )...

    [单选题]3*1**3 表达式输出结果为________ [多选题]以下的布尔代数运算正确的是( ) [单选题]下列________不是Python的数据类型. [单选题]下列不是Python语言关键 ...

  2. 以下用来处理python字典的方法中正确的是_以下关于Python的说法中正确的是哪一项?...

    [判断题]Python内置函数len____可以返回列表.元组.字典.集合.字符串以及range对象中元素个数. [判断题]Python内置函数max____用来返回序列中的最大元素. [判断题]Py ...

  3. python文件路径拼接多出斜杠_浅谈python中拼接路径os.path.join斜杠的问题

    浅谈python中拼接路径os.path.join斜杠的问题 调试程序的过程中,发现通过os.path.join拼接的路径出现了反斜杠 directory1='/opt/apps/upgradePac ...

  4. python中协程与函数的区别_深入浅析python 协程与go协程的区别

    进程.线程和协程 进程的定义: 进程,是计算机中已运行程序的实体.程序本身只是指令.数据及其组织形式的描述,进程才是程序的真正运行实例. 线程的定义: 操作系统能够进行运算调度的最小单位.它被包含在进 ...

  5. python读json文件中不同的数据类型_怎么使用python提取json文件中的字段

    python中为什么用json有什么作用 python的json模块中如何将变量添加到里面 python的json模块第一个是要打开的文件,第二个是打开的操作,为什么会如果你早认清你在别人心中没那么重 ...

  6. python学得好 牢饭吃的早_关于学习python的几个好习惯?

    慕仰1329654 随着Python在国内的发展,特别是在自动化运维领域,运维开发者99%使用Python开发自动化运维平台:在软件行业里面使用Python编程语言的公司会越来越多,那么在学习Pyth ...

  7. Python 中list中所有值加和_深入认识Python中的itertools模块-Python教程

    在Python中有一个功能强大的迭代工具包itertools,是Python自带的标准工具包之一. product 由于itertools是内置库,不需要任何安装,直接import itertools ...

  8. python下载matplotlib.finance模块_Python pyfinance包_程序模块 - PyPI - Python中文网

    PyFinance pyfinance是一个python包,用于投资管理和安全回报分析. 它是对面向量化金融的现有软件包的补充,例如pyfolio, 熊猫数据读取器,以及fecon235 支持巨蟒3. ...

  9. python在d盘增加环境变量配置_怎样配置Python环境变量

    展开全部 第一步:制 找到你的python安装的目录 比如我的bai安装在D盘的python 2.7文件du夹zhi下面,我就dao找到这个文件夹. 然后复制这个文件地址 CTRL+C复制. 第二步: ...

最新文章

  1. 你也可以玩转Skype -- 基于Skype API开发外壳程序入门
  2. python知识:如何从图片的四周扩大一些尺寸
  3. 比特币钱包(4) BIP39 助记词
  4. PHP一个比较完善的树形结构代码
  5. 解决JBoss只能通过localhost访问不能通过IP的问题
  6. windows下的diskpart指令彻底格式化清除U盘
  7. mysql jquery tree_php mysql js实现树形菜单代码
  8. Bluetooth篇 开发实例之六 蓝牙RSSI计算距离
  9. NAT对数据业务的影响
  10. android模拟器模拟nfc功能吗,android – 开始使用NFC模拟器
  11. 金山词霸没有响应, 金山词霸与卡巴冲突问题解决方法?
  12. java实现上传文件
  13. 计算机考研统考压分吗,担忧!考研初试会被压分吗?
  14. 问题 A: 【动态规划】机器人军团(最大不下降子序列)
  15. 弘辽科技:淘宝标签商家是什么意思?注意哪些事项?
  16. 好佳居软装十大品牌 软装市场发展状况如何
  17. html 过滤引号,用js正则表达式过滤双引号的解决办法
  18. 极简设计模式 - UML类图几种线条
  19. mysql中高阶玩法系列(九)
  20. POJ 2305大数求余

热门文章

  1. 第三次学JAVA再学不好就吃翔(part43)--局部内部类访问局部变量
  2. python基础(part1)--注释/变量/del语句
  3. SAP Spartacus Multi-Site Configuration
  4. SAP Hybris WCMS cockpit 的登录 url
  5. 本地开发好的 SAP Fiori Elements 应用,如何部署到 ABAP 服务器上?
  6. SAP Spartacus B2B 页面 info icon 设计 - 版本1.0
  7. 从一个实际的例子出发,谈谈SAP Commerce Cloud电商云的UI自定义开发
  8. Angular里ngClass的一个使用例子
  9. 打印SAP Spartacus generic link指向的url
  10. SAP Spartacus TypeScript源代码中的三个点用法