簡說Python生態系統的14年演變

2021-09-12 17:34:28 字數 1391 閱讀 2153

構建 pypi 映象一件非常酷的事情就是讓我掌握了很多的資料。至此,我決定探索一下自 2003 年建立 pypi 以來,整個生態系統發生了怎樣的變化。不過,接下來大部分的分析都是始於 2005 年,這一年 pypi 新增了 upload_time 。

在這十四年間,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 的採用情況,如下圖:

並不是每個 packages 都將作為 wheel 發布,特別是 psycopg2 馬上就要停止發布了,其**的 libssl 和系統自帶的 libssl 間有衝突,不過這種情況並不常見,所以希望未來可以有更多的 packages 被作為 wheel 分發,保持現在的強勁勢頭,可以達到 90% 乃至更多。如果按照下面圖中趨勢的發展,也許 2022 年就可以實現了。

python模擬生態系統

基於matplotlib庫下animation pyplot功能進行的乙個生態的模擬程式,參考了一些網上視覺化的教程和生態模擬的引數。在本程式中由4種東西構成生態系統,草 草食動物 肉食動物 空地,使用了搜尋的演算法 random函式來模擬動物進食關係,以及動物的捕食動向,最後通過times間隔每秒...

Hadoop生態系統

摘要 介紹hadoop生態系統,從hadoop生態系統有什麼成員,成員能做什麼和hadoop生態系統能夠提供大資料問題解決方案兩方面來認識。hadoop生態圖,通俗地說,就是hadoop核心模組和衍生的子專案。一幅hadoop生態圖,讓我想到了兩個問題。問題一 hadoop生態系統包括哪些成員?每個...

Docker生態系統

docker是以docker容器為資源分割和排程的基本單位,封裝軟體的執行時環境.用於快速構建,發布,執行分布式應用的平台。docker的執行時容器的本質是程序.在linux中,通過namespace進行資源隔離,cgroups進行資源限制,使docker容器看上去像是乙個執行在宿主機中的虛擬機器....