△ △ 請給「 Python貓 」加星標 ,以免錯過文章推播
你好,我是貓哥。這裏每周分享優質的 Python、AI 及通用技術內容,大部份為英文。本周刊開源,歡迎 投稿 [1] 。另有 電報頻道 [2] 作為副刊,補充釋出更加豐富的資訊,歡迎關註。
🦄文章&教程
1、 白宮建議使用 Python 等記憶體安全語言 [3]
最近,白宮釋出了一份報告,建議使用記憶體安全的程式語言。去年 CISA、NSA 等機構聯合釋出的報告列出了記憶體安全的語言有 C#、Go、Java、 Python 、Rust 及 Swift。PSF 這篇文章介紹了 Python 在記憶體安全性方面所做的工作,包括封裝底層程式碼、從 C 向 Rust 遷移、使用編譯器選項強化 C 程式碼構建。
2、 回顧 Requests 庫的問題 [4]
文章作者是 Requests 的核心維護者之一,他列舉了這個庫做得糟糕的多個地方,也指出了很多想改進卻沒有做到的原因。文末的結語說:「the project feels dead」。這讓人感覺很難受。本周刊 第26期 [5] 分享過該庫作者 KR 的道歉文,然而社群內幾無波瀾,後來看到 KR 失業,從推文感覺他精神狀態很糟糕,更讓人難受了。(投稿by@frostming90)
3、 Python 的 UV 工具確實相當不錯 [6]
上期周刊分享的可替換
pip
的
uv
庫,你用了麽?感覺如何啊?文章作者給出了積極反饋,分享了自己一些配置檔的前後對比。
4、 Python 生成器未得到充分利用 [7]
Python 生成器的作用是能節省記憶體,這篇文章用很明白的例子對比了兩種記憶體使用情況,讓我們感受到生成器的好處,同時,文章也指出了需要避免的一些使用陷阱。
5、 使用 Python 作高級 Web 抓取:從任意網站抓取數據 [8]
文章討論了從 Web 抓取內容的一些高級技術,話題包括如何更好處理 Cookie 及自訂請求頭、什麽是 TLS 指紋以及如何避免它、需要註意的常見 HTTP 請求頭、在發出 HTTP 請求時如何整合指數回退重試,等等。
6、 Django REST 框架 + Vue 對比 Django + HTMX [9]
兩種 Web 開發框架的組合:DRF + Vue 以及 Django + HTMX,它們分別是如何使用的,各自又有哪些優勢和劣勢呢?文章用這兩個組合分別實作同樣的功能,分析了兩組技術棧的差異,羅列了一份比對清單,可方便我們更好地作技術選型。
7、 可組合數據系統之路:對過去 15 年和未來的思考 [10]
文章出自
pandas
庫兼【Python數據分析】一書的作者 Wes McKinney,回顧了他從 2008 年以來在數據科學領域所做的事情和轉變,同分時析和思考了模組化、互操作性和可組合性的未來趨勢。
8、 用 Django 作 SQLite 基準測試 [11]
作者分別調整 SQLite 的一些主要配置項來作基準測試,另外也比較了 SQLite 和 PostgreSQL 的效能。簡短結論:啟用 WAL 模式、使用 IMMEDIATE 事務、
synchronous=NORMAL
和記憶體對映 I/O 對吞吐量的影響很小。
9、 Python 3.13 的 JIT 是如何實作的? [12]
文章介紹了 Python 最新正在開發中的 JIT 是如何實作的,並嘗試安裝了開發版本,然後與無 JIT 版本作效能比較。目前 JIT 版本的效能反而慢於普通版本,官方仍需繼續努力最佳化。
10、 Python 網頁抓取的終極指南 [13]
一篇詳細的爬蟲教程,介紹了如何使用 BeautifulSoup、Scrapy 和 Selenium 等庫實作網頁抓取,如何克服復雜網頁、限速、反爬、動態 javascript 等挑戰。
11、 為簡單架構作辯護 [14]
Wave 是一家僅有 70 名工程師但估值 17 億美元的公司,其產品只是一款標準的 CRUD 程式,是構建在 Postgres 之上的 Python 單體架構。文章解釋了為什麽要選擇這樣的架構,解釋了這樣選型的合理性,以及為了保持它而克服的相關難題和選用的技術方案。
12、 關於「排程」的內部原理 [15]
一篇非常深度的長文,深入探討了「並行」,解釋了單執行緒伺服器如何透過異步 IO 和事件驅動編程來處理數以百萬計的任務。討論了實作並行的各種方法和工具,不同程式語言的實作。文中有不少動畫,可方便讀者理解。
🎁 Python潮流周刊 🎁每 30 期為一季,第一季的精華內容已整理成一篇,方便你隨時檢視。線上存取地址: Python 潮流周刊第一季精華合集(1~30) [16]
🐿️計畫&資源
1、 ingestr:用單個命令在任何資料庫間無縫復制數據 [17]
這是一個 CLI 工具,使用簡單的命令即可實作跨資料庫的內容復制。支持增量載入:
append
、
merge
和
delete+insert
模式。(star 1.3K)
2、 justpath:在 Windows 和 Linux 上檢查和最佳化 PATH 環境變量 [18]
一個用於管理作業系統 PATH 環境變量的命令列工具,典型功能包括:篩選目錄、辨識和清理無效配置、PATH 轉儲為 JSON、建立新的環境變量、統計數量。
3、 mountaineer:用於 Python 和 React 的內建電池的 Web 框架 [19]
全棧的 Web 開發框架,主要特點:全棧的型別提示、友好的服務通訊及數據繫結、伺服器端渲染、對網頁作靜態分析的增強校驗、等等。
4、 generate:一個 API 存取國內外大模型平台 [20]
使用一個統一的 API 存取大模型,特點:統一的 API、支持多模態、支持 10+ 大模型平台、異步&流式和並行、內建電池、輕量化、高品質程式碼。(投稿by@wangyuxinwhy)
5、 StringZilla:將 C、C++、Python、Rust 和 Swift 的字串速度提高 10 倍 [21]
「由於低效的字串操作,世界每年至少浪費 1 億美元」。這個計畫可替換程式語言原生的字串型別,提高效能。可加速精確和模糊字串匹配、編輯距離計算、排序、延遲計算範圍以避免記憶體分配,甚至隨機字串生成器。(star 1.4K)
6、 DrissionPage: 網頁自動化工具,能控制瀏覽器,也能收發封包 [22]
采用全自研內核,對比 Selenium 有以下優點:無 webdriver 特征、跨 iframe 尋找元素、把 iframe 看作普通元素、可同時操作多個分頁、可直接讀取瀏覽器緩存來保存圖片、可對整個網頁截圖,等等。(star 4.1K)
7、 Daft:Rust 開發的面向雲的分布式 Python DataFrame [23]
用 Rust 開發的用於大規模數據處理的分布式查詢引擎,熟悉的互動式 API、專註於查詢最佳化、整合數據目錄、豐富的多模態型別系統、專為雲而構建。(star 1.4K)
8、 magika:使用深度學習來檢測檔內容的型別 [24]
谷歌最新開源作品,使用 AI 來檢測檔型別,具有 99% 的精確度。可作為 Python 命令列和 API 使用,支持超過 100 中檔型別,每個檔的推理時間約為 5 毫秒。(star 7K)
9、 frappe:低程式碼 Web 框架,使用 Python 和 Javascript [25]
內建電池的全棧 Web 框架,低程式碼,伺服器端使用 Python 和 MariaDB,特點:後設資料優先、管理員界面、開箱即用的角色和許可權、支持外掛程式、支持任務排程、信箱管理、多租戶,等等。(star 6.3K)
10、 Umi-OCR: 開源、免費的離線 OCR 軟體,支持螢幕擷取/批次匯入圖片 [26]
解壓即用,離線執行,無需網路;內建高效率的離線OCR引擎,內建多種語言辨識庫;支持命令列、HTTP介面等多種呼叫方式;截圖OCR / 批次OCR / PDF辨識 / 二維碼。(star 19.4K)
11、 xonsh:Python 開發的跨平台的類 Unix 的 shell [27]
這個計畫是 Python 3.6+ 的超集,帶有 shell 原語。可以作為 shell 和 Python 單獨使用,也可以在 Python 裏寫 shell,在 shell 裏寫 Python。(star 7.8K)
🐼歡迎訂閱
微信公眾號 [28] :除更新周刊外,還釋出其它原創作品,並轉載一些優質文章。(可加好友,可加讀者交流群)
部落格 [29] 及 RSS [30] :我的獨立部落格,上面有歷年原創/轉譯的技術文章,以及從 2009 年以來的一些隨筆。
信件 [31] 及 RSS [32] :在 Substack 上開通的頻道,滿足你透過信件閱讀時事通訊的訴求。
Github [33] :你可以獲取本周刊的 Markdown 原始檔,做任何想做的事!
Telegram [34] :除了釋出周刊的通知外,我將它視為一個「副刊」,補充釋出更加豐富的資訊。
Twitter [35] :我的關註列表裏有大量 Python 相關的開發者與組織的帳號。
參考資料
[1]
投稿:
https://github.com/chinesehuazhou/python-weekly
電報頻道:
https://t.me/pythontrendingweekly
白宮建議使用 Python 等記憶體安全語言:
https://pyfound.blogspot.com/2024/02/white-house-recommends-.html
回顧 Requests 庫的問題:
https://blog.ian.stapletoncordas.co/2024/02/a-retrospective-on-requests
第26期:
https://pythoncat.top/posts/2023-11-11-weekly
Python 的 UV 工具確實相當不錯:
https://micro.webology.dev/2024/02/29/pythons-uv-tool.html
Python 生成器未得到充分利用:
https://www.slashtmp.io/posts/generators/
使用 Python 作高級 Web 抓取:從任意網站抓取數據:
https://jacobpadilla.com/articles/advanced-web-scraping-techniques
Django REST 框架 + Vue 對比 Django + HTMX:
https://testdriven.io/blog/drf-vue-vs-django-htmx/
可組合數據系統之路:對過去 15 年和未來的思考:
https://wesmckinney.com/blog/looking-back-15-years/
用 Django 作 SQLite 基準測試:
https://blog.pecar.me/django-sqlite-benchmark
Python 3.13 的 JIT 是如何實作的?:
https://zhuanlan.zhihu.com/p/682997904
Python 網頁抓取的終極指南:
https://proxiesapi.com/articles/web-scraping-in-python-the-complete-guide
為簡單架構作辯護:
https://danluu.com/simple-architectures/
關於「排程」的內部原理:
https://tontinton.com/posts/scheduling-internals/
Python 潮流周刊第一季精華合集(1~30):
https://pythoncat.top/posts/2023-12-11-weekly
ingestr:用單個命令在任何資料庫間無縫復制數據:
https://github.com/bruin-data/ingestr
justpath:在 Windows 和 Linux 上檢查和最佳化 PATH 環境變量:
https://github.com/epogrebnyak/justpath
mountaineer:用於 Python 和 React 的內建電池的 Web 框架:
https://github.com/piercefreeman/mountaineer
generate:一個 API 存取國內外大模型平台:
https://github.com/wangyuxinwhy/generate
StringZilla:將 C、C++、Python、Rust 和 Swift 的字串速度提高 10 倍:
https://github.com/ashvardanian/StringZilla
DrissionPage: 網頁自動化工具,能控制瀏覽器,也能收發封包:
https://github.com/g1879/DrissionPage
Daft:Rust 開發的面向雲的分布式 Python DataFrame:
https://github.com/Eventual-Inc/Daft
magika:使用深度學習來檢測檔內容的型別:
https://github.com/google/magika
frappe:低程式碼 Web 框架,使用 Python 和 Javascript:
https://github.com/frappe/frappe
Umi-OCR: 開源、免費的離線 OCR 軟體,支持螢幕擷取/批次匯入圖片:
https://github.com/hiroi-sora/Umi-OCR
xonsh:Python 開發的跨平台的類 Unix 的 shell:
https://github.com/xonsh/xonsh
微信公眾號:
https://img.pythoncat.top/python_cat.jpg
部落格:
https://pythoncat.top
RSS:
https://pythoncat.top/rss.xml
信件:
https://pythoncat.substack.com
RSS:
https://pythoncat.substack.com/feed
Github:
https://github.com/chinesehuazhou/python-weekly
Telegram:
https://t.me/pythontrendingweekly
Twitter:
https://twitter.com/chinesehuazhou
如果你覺得本文有幫助
請慷慨 分享 和 點贊 ,感謝啦 !