原标题:简说Python生态系统的14年演变

【导语】Python 里各种丰富的标准库、第三方库和模块成为其广受欢迎的原因之一。而 PyPI 就是大家想第三方库前先要安装的一个仓库。作为使用者,它可以帮我们查找 Python 社区开发和共享的软件;而作为开发者,可以用 PyPI 分发自己的软件。从 2003 年创建 PyPI 到现在,整个社区又是如何发展的?现状如何?有哪些有趣的发现,本文将与大家一起进行初步探索。

构建 PyPI 镜像一件非常酷的事情就是让我掌握了很多的数据。至此,我决定探索一下自 2003 年创建 PyPI 以来,整个生态系统发生了怎样的变化。不过,接下来大部分的分析都是始于 2005 年,这一年 PyPI 添加了 upload_time 。

下图展示了2005-2018 年活跃的 Python Packages 数量,蓝色表示 Old Packages,橙色表示 New。更多Python视频、源码、资料加群984632579免费获取

在这十四年间,Python 的生态系统一直在稳步增长。随着 PyPI 在 Python 社区几乎被完全接受,在那几年里持高速增长。之后活跃 Packages 的数量每年增长 28% 到 48%(活跃 Packages 指的是已经发布过一版或发布了新版本)。

在这14年的时间里,Python的生态系统一直在稳步增长。对于PyPl而言,在它被Python社区几乎完全接受的那几年里持高速增长状态, Packages (至少更新过一个版本或刚刚上线的)数量也在活跃增长,年复合增长率可达28%至48%。

如图所示,66%的Packages是新发布的,其中绝大多数不会持续维护;持续一年以上维护的Packages还是保持强劲增长;每年新上线的Packages增幅在31%~59%,尽管增速有所减缓,但势头不减。这意味着,整体上看,Packages正发布着越来越多的版本,预示着PyPl变得越来越成熟。

结果最令我吃惊的是,每个Packages的发布数量。此前我一直靠个人经验,升级Packages依赖库,例如 AWS 的 #15 botocore,但是 ccxt 库 的“脱颖而出”是我没想到的。在不到两年的时间里,ccxt 已经发布了 4659 个版本,发布数量比其他的 Packages 的 3 倍还多。但是当我在尝试加载它的时候, libraries.io 页面的加载时间要 30 多秒,所以,我也不确定它的维护是好还是坏,但是真的是让人印象非常深刻!

另外一个有趣的发现是分发 Packages实践上的变化。最大的变化是 Python 3 的发布。Binary Wheels 于 2012 年被引入并编入 PEP 427,被普遍认为是分发 Python Packages 的最佳方式,但 Packages 作者的接受周期还需要时间。Python Wheels 可以跟踪 PyPI 360 个 Packages 的采用情况,如下图:

更多Python视频、源码、资料加群984632579免费获取

python的发展生态_简说Python生态系统的14年演变相关推荐

  1. python异步的发展历程_深入了解Python的异步IO:概念和历史

    前面发表了<简说Python Web异步框架>一文后,很多朋友希望能更多了解Python关于asyncio的知识.正好,我也想深入理解理解这方面的知识,于是就促成了这篇文章. 一.软件系统 ...

  2. python归一化 增大差异_简学Python第六章__class面向对象编程与异常处理

    Python第六章__class面向对象编程与异常处理 欢迎加入Linux_Python学习群 群号:478616847 目录: 面向对象的程序设计 类和对象 封装 继承与派生 多态与多态性 特性pr ...

  3. python数据库管理系统ess_【简说Python WEB】数据库

    系统环境:Ubuntu 18.04.1 LTS Python使用的是虚拟环境:virutalenv Python的版本:Python 3.6.9 [简说Python WEB]数据库 SQL数据库: O ...

  4. python nonlocal的用法_简谈Python3关键字nonlocal使用场景

    下面是之前提过的有待提升效率的计算移动平均的方法: def make_averager(): series = [] def averager(new_value): series.append(ne ...

  5. python变量标识符_简谈-Python的注释、变量类型、标识符及关键字

    在Python程序中,要想支持中文输出,则要在代码前面添加 标识符:开发人员在程序中自定义的一些符号和名称 标示符是自己定义的,如变量名 .函数名等 标识符的规则: 标示符由字目.下划线和数字组成,且 ...

  6. python兼容性怎么样_简谈python的向下兼容性问题

    前两天在写python代码的时候,发现了一个问题.因为要使用email模块,使用 了其中一项导入语句:from email.mime.text import MIMEText,在python2.5下 ...

  7. python打开文件切片_收藏 | 从Python安装到语法基础,小白都能懂的爬虫教程!(附代码)...

    来源:大数据 作者:罗攀 蒋仟 本文约5000字,建议阅读20分钟. 本文立足基础,讲解Python和PyCharm的安装,及Python最简单的语法基础和爬虫技术中所需的Python语法. 本文涉及 ...

  8. 学习python最好的书籍_最好的Python书籍

    学习python最好的书籍 Python is an amazing programming language. It can be applied to almost any programming ...

  9. 用python编写密码安全性_用大数据python保护密码

    本篇文章给大家带来的就是关于用大数据Python保护密码,大数据时代,各种网站都需要你注册账号,使用密码.往往大家为了省事,所有的平台的账号密码是一样的,假如某个网站数据泄露后,那你的隐私安全就有问题 ...

最新文章

  1. 亲爱的,别把上帝缩小了 ---- 读书笔记2
  2. Python的XML解析!
  3. CentOS7中怎样安装JDK与配置环境变量
  4. 所有配置_Springboot 打印所有配置
  5. PCB中英对照一、 综合词汇
  6. oracle高效分页存储过程(百万数据级)
  7. 神经网络动态可视化工具
  8. 计算机运维需要那些知识,运维必知必备!73页计算机基础知识,新手小白也能轻松读懂...
  9. 【制作脑图】万彩脑图大师教程 | 关于设置
  10. Spring Boot + ECharts
  11. 第939期机器学习日报(2017-04-14)
  12. Java延时订单处理(上)- - 抛砖引玉
  13. PHPMyWind支持ppt导入
  14. c语言梅森素数求完数,梅森素数与完全数.doc
  15. python读xml文件生成.h头文件_PYTHON读写xml文件的方法
  16. torch.mul() 和 torch.mm() 的区别
  17. DC 视频教程 第十课
  18. 微信小程序的分包功能
  19. 电脑安装python3.74_python3.4学习笔记(十六) windows下面安装easy_install和pip教程
  20. JS提取字符串的手机号或固话

热门文章

  1. HDU1175 连连看【DFS】
  2. IE、Chrome、Firefox 三大浏览器对比
  3. everything 全盘文件查找工具及正则表达式的使用
  4. 冷知识 —— 物种大交换
  5. 中英文对照 —— 宗教
  6. 数值溢出(arithmetic overflow)问题与解决方案
  7. DoG(Difference of Gaussian)
  8. Tricks(三十二)—— 遍历全部的子串(子数组)
  9. C基础——文本格式和二进制格式的区别
  10. python 位运算符与逻辑运算符(字符串的逻辑运算)