△△請給“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
[2]電報頻道: https://t.me/pythontrendingweekly
[3]白宮建議使用 Python 等內存安全語言: https://pyfound.blogspot.com/2024/02/white-house-recommends-.html
[4]回顧 Requests 庫的問題: https://blog.ian.stapletoncordas.co/2024/02/a-retrospective-on-requests
[5]第26期: https://pythoncat.top/posts/2023-11-11-weekly
[6]Python 的 UV 工具確實相當不錯: https://micro.webology.dev/2024/02/29/pythons-uv-tool.html
[7]Python 生成器未得到充分利用: https://www.slashtmp.io/posts/generators/
[8]使用 Python 作高級 Web 抓取:從任意網站抓取數據: https://jacobpadilla.com/articles/advanced-web-scraping-techniques
[9]Django REST 框架 + Vue 對比 Django + HTMX: https://testdriven.io/blog/drf-vue-vs-django-htmx/
[10]可組合數據系統之路:對過去 15 年和未來的思考: https://wesmckinney.com/blog/looking-back-15-years/
[11]用 Django 作 SQLite 基準測試: https://blog.pecar.me/django-sqlite-benchmark
[12]Python 3.13 的 JIT 是如何實現的?: https://zhuanlan.zhihu.com/p/682997904
[13]Python 網頁抓取的終極指南: https://proxiesapi.com/articles/web-scraping-in-python-the-complete-guide
[14]為簡單架構作辯護: https://danluu.com/simple-architectures/
[15]關于“調度”的內部原理: https://tontinton.com/posts/scheduling-internals/
[16]Python 潮流周刊第一季精華合集(1~30): https://pythoncat.top/posts/2023-12-11-weekly
[17]ingestr:用單個命令在任何數據庫間無縫復制數據: https://github.com/bruin-data/ingestr
[18]justpath:在 Windows 和 Linux 上檢查和優化 PATH 環境變量: https://github.com/epogrebnyak/justpath
[19]mountaineer:用于 Python 和 React 的自帶電池的 Web 框架: https://github.com/piercefreeman/mountaineer
[20]generate:一個 API 訪問國內外大模型平臺: https://github.com/wangyuxinwhy/generate
[21]StringZilla:將 C、C++、Python、Rust 和 Swift 的字符串速度提高 10 倍: https://github.com/ashvardanian/StringZilla
[22]DrissionPage: 網頁自動化工具,能控制瀏覽器,也能收發數據包: https://github.com/g1879/DrissionPage
[23]Daft:Rust 開發的面向云的分布式 Python DataFrame: https://github.com/Eventual-Inc/Daft
[24]magika:使用深度學習來檢測文件內容的類型: https://github.com/google/magika
[25]frappe:低代碼 Web 框架,使用 Python 和 Javascript: https://github.com/frappe/frappe
[26]Umi-OCR: 開源、免費的離線 OCR 軟件,支持截屏/批量導入圖片: https://github.com/hiroi-sora/Umi-OCR
[27]xonsh:Python 開發的跨平臺的類 Unix 的 shell: https://github.com/xonsh/xonsh
[28]微信公眾號: https://img.pythoncat.top/python_cat.jpg
[29]博客: https://pythoncat.top
[30]RSS: https://pythoncat.top/rss.xml
[31]郵件: https://pythoncat.substack.com
[32]RSS: https://pythoncat.substack.com/feed
[33]Github: https://github.com/chinesehuazhou/python-weekly
[34]Telegram: https://t.me/pythontrendingweekly
[35]Twitter: https://twitter.com/chinesehuazhou
如果你覺得本文有幫助
請慷慨分享和點贊,感謝啦!