△ △ 請給「 Python貓 」加星標 ,以免錯過文章推播
你好,我是貓哥。這裏每周分享優質的 Python、AI 及通用技術內容,大部份為英文。本周刊開源,歡迎 投稿 [1] 。另有 電報頻道 [2] 作為副刊,補充釋出更加豐富的資訊,歡迎關註。
特別提醒: 本期周刊贈書 5 本【Python數據結構與演算法分析(第3版)】,詳情見文末。
本文部落格版連結(更好的閱讀體驗): https://pythoncat.top/posts/2024-03-23-weekly
🦄文章&教程
1、 我的開源優先級轉變了 [3]
作者開源了
PyOxidizer
和
python-build-standalone
等多個 Python 計畫,但因為程式語言興趣已轉向 Rust,以及身份成為了丈夫&父親,時間精力不足,因此選擇回歸家庭,要給這些開源計畫尋求新的維護者了。
2、 如何遠端喚醒家裏的電腦? [4]
家裏的電腦處於休眠模式,如何從其它地方遠端喚醒它?作者用樹莓派單板電腦 + Python 開發的簡單網頁 + systemd 服務,透過給電腦的網路控制器發送封包,實作了機器的遠端喚醒。
3、 Python 程式的記憶體占用情況 [5]
相比靜態型別語言,Python 要消耗大量記憶體。文章探討了 Python 的記憶體模型:物件是如何分配的、物件儲存在什麽地方、最終如何清理物件?介紹了如何使用簡單的技巧,顯著改善記憶體的使用。
4、 正規表式字元「$」並不意味著「字串末尾」 [6]
正規表式中「$」符號會匹配到什麽內容呢?Python
re.MULTILINE
多行模式對字串匹配的影響?是否不同的程式語言的表現都一樣呢?什麽時候應該用「\z」和「\Z」?
5、 介紹 Python 中所有的雙下方法 [7]
雙下方法即以雙底線開頭和結尾的特殊方法,例如
__init__()
,Python 語言中共有 150 多個特殊的雙下方法,文章對它們多了分類介紹,並梳理了明細清單。
6、 Python 多語言支持實作國際化與在地化的最佳實踐 [8]
Python 有豐富的庫可支持國際化和在地化,文章介紹如何用
gettext
庫實作語言國際化以及如何管理在地化資源。
7、 在 Windows 上利用 Qwen 大模型搭建一個 ChatGPT 式的問答小助手 [9]
Qwen 是阿裏推出的大語言模型,作者用 Win10 系統搭建了一個基於 Qwen 的 AI 問答助手。內容包括安裝環境、下載模型、使用
transformers
實作模型對話功能。
8、 (如何(用Python)開發一個(Lisp)直譯器) [10]
「如果你不知道編譯器是如何工作的,那你就不知道電腦是如何工作的。「作者透過用 Python 開發一個 Lisp 直譯器,詳細介紹了 Scheme 的語法,深入探討直譯器/電腦的工作原理。
9、 使用 Python 解析 URL [11]
正確地解析 URL 要比想象得難,它自 1994 年提出以來已發生巨大變化。Python 標準庫
urllib
並不遵循任何 URL 規範,文章介紹了兩個符合 WHATWG 規範的解析庫
ada-python
和
can_ada
,後者比前者快 2 倍,前者比
urllib.parse
快 2 倍。
10、 Python 鴨子類別型:編寫靈活且解耦的程式碼 [12]
鴨子類別型的核心思想是「如果它走起來像鴨子,叫起來像鴨子,那麽它就是鴨子」。由物件的行為決定型別,而非是一成不變。這篇長文對鴨子類別型作了非常詳細的介紹,它是什麽、如何使用、有什麽優缺點、使用哪些方案來彌補鴨子類別型的缺點,等等。
11、 用 Python 實作最小可用的 PostgreSQL [13]
介紹了 PostgreSQL 伺服端與客戶端通訊的流程,使用 Python 實作一個最小化的伺服端。
12、 給框架開發者的建議 [14]
作者在去年開發了兩個 Python 框架,文章分享了他在開發框架時學到的東西。部份建議有:定義你的反目標、了解已存在的東西、首先考慮你的界面、在沒準備好時就使用、1 個樣本是不夠的、重視文件,等等。
🎁 Python潮流周刊 🎁每 30 期為一季,第一季的精華內容已整理成一篇,方便你隨時檢視。線上存取地址: Python 潮流周刊第一季精華合集(1~30) [15]
🐿️計畫&資源
1、 grok-1:馬斯克開源的 Grok [16]
本周最最火爆的計畫當屬馬斯克差點跳票的 Grok 大語言模型了,有非常驚人的 314B 參數,8 個專家的混合體,最長上下文 8192 token。(star 43K)
2、 DarkGPT:基於 GPT-4-200K,查詢泄露的資料庫 [17]
基於 GPT-4 的開源情報助手,從付費的 DeHashed 高效地搜集和分析資訊,對網路安全和數據泄露調查有所幫助。
3、 structlog:簡單、強大、快速的 Python 日誌記錄庫 [18]
一個 Python 日誌庫,強調結構化和型別安全的日誌記錄,相容
logging
標準庫,支持輸出 JSON、logfmt 和漂亮的控制台日誌。(star 3.1K)
4、 pydumpling: 針對 Python 的異常偵錯程式 [19]
Python Debug 工具,與 Linux 中偵錯 core dump 檔一樣,支持在異常發生時/程式任意位置保留當前呼叫棧幀,然後透過 pdb 進行偵錯。支持全域 hook,支持伺服器遠端偵錯。(投稿自@cocolato)
5、 can_ada:快速且符合規範的 URL 解析庫 [20]
符合 WHATWG 規範的 URL 解析器,也用在了 Node.js 等計畫中。比標準庫 urllib 快 4 倍。
6、 Mindgraph:使用 AI 生成和查詢不斷擴充套件的知識圖譜 [21]
一個驗證概念的計畫,可作為樣版,用於構建和自訂自己的 CRM 解決方案,重點是易於整合和可延伸性。
7、 speechbrain:基於 PyTorch 的語音工具包 [22]
一個 PyTorch 工具包,專為快速簡便地建立先進的語音和文本處理技術而設計,可加速對話式 AI (即語音助手、聊天機器人和大語言模型)開發。(star 7.7K)
8、 python-anyconfig:以通用 API 載入和轉儲各種格式的配置檔 [23]
提供了非常簡單和統一的 API 來處理各種格式的配置檔,支持格式有 JSON、ini、Pickle、XML、Java properties、YAML、TOML,等等。
9、 Llama-Chinese: Llama 中文社群,最好的中文 Llama 大模型 [24]
專註於 Llama 模型在中文方面的最佳化和上層建設的高級技術社群,定期組織線上活動、技術研討和經驗分享,促進成員間的創新交流。(star 9K)
10、 python-for-android:將 Python 程式變成 Android APK [25]
可將 Python 套用打包成在 Android 裝置上執行的二進制檔(APK、AAB 和 AAR),支持多種 CPU 架構,支持大多數純 Python 包和一些流行的依賴於 C 程式碼的包(如 numpy、sqlalchemy)。(star 8K)
11、 img2img-turbo:Stable Diffusion turbo 實作的 sketch2image、day2night 等 [26]
基於素描快速生成圖片、夜晚圖片轉換為白天(或相反)、晴天圖片轉換為雨天,等等。
12、 ludic:用純 Python 構建動態 HTML 頁面的輕量級框架 [27]
使用類似於 React 的元件構建 HTML 頁面,旨在與 htmx.org 一起使用,幾乎不需寫任何 JavaScript。後端基於 Starlette 框架。
🐢播客&視訊
1、 帶大家感受一下沒有 GIL 的 CPython [28]
CPython 主線分支已合入了可禁用 GIL 的開關,這則視訊帶大家體驗一下沒有 GIL 的 Python 會有什麽樣的表現。
2、 ruff、uv 和 Astral:Python 工具鏈,使用 Rust 提速 [29]
ruff 和 uv 出自同一個團隊,給 Python 的基礎工具鏈帶來了非常有前景的影響。這期播客對話了 Charlie Marsh。(附:另一則相似話題的播客 uv - Python 包的下一次演變? [30] )
🐢贈書福利
非週期性的福利活動,本期贈書 5 本【Python數據結構與演算法分析(第3版)】,開獎時間 3 月 29 日 。請給 Python貓 [31] 公眾號發送數位「 8043 」,獲取抽獎小程式碼。
書是用 Python 描述數據結構與演算法的開山之作,匯聚了作者多年的實戰經驗,透徹講解在 Python 中透過一系列儲存機制高效地實作各類演算法。這本書讓你深刻理解 Python 數據結構、遞迴、搜尋、排序、樹與圖的套用,等等。
🐼歡迎訂閱
微信公眾號 [32] :除更新周刊外,還釋出其它原創作品,並轉載一些優質文章。(可加好友,可加讀者交流群)
部落格 [33] 及 RSS [34] :我的獨立部落格,上面有歷年原創/轉譯的技術文章,以及從 2009 年以來的一些隨筆。
信件 [35] 及 RSS [36] :在 Substack 上開通的頻道,滿足你透過信件閱讀時事通訊的訴求。
Github [37] :你可以獲取本周刊的 Markdown 原始檔,做任何想做的事!
Telegram [38] :除了釋出周刊的通知外,我將它視為一個「副刊」,補充釋出更加豐富的資訊。
Twitter [39] :我的關註列表裏有大量 Python 相關的開發者與組織的帳號。
參考資料
[1]
投稿:
https://github.com/chinesehuazhou/python-weekly
電報頻道:
https://t.me/pythontrendingweekly
我的開源優先級轉變了:
https://gregoryszorc.com/blog/2024/03/17/my-shifting-open-source-priorities/
如何遠端喚醒家裏的電腦?:
https://bernsteinbear.com/blog/wakeonlan/
Python 程式的記憶體占用情況:
https://codebeez.nl/blogs/the-memory-footprint-of-your-python-application/
正規表式字元「$」並不意味著「字串末尾」: *https://sethmlarson.dev/regex-$-matches-end-of-string-or-newline*
介紹 Python 中所有的雙下方法:
https://www.pythonmorsels.com/every-dunder-method/
Python 多語言支持實作國際化與在地化的最佳實踐:
https://juejin.cn/post/7348264185325568036
在 Windows 上利用 Qwen 大模型搭建一個 ChatGPT 式的問答小助手:
https://juejin.cn/post/7347670979634167823
(如何(用Python)開發一個(Lisp)直譯器):
https://www.norvig.com/lispy.html
使用 Python 解析 URL:
https://tkte.ch/articles/2024/03/15/parsing-urls-in-python.html
Python 鴨子類別型:編寫靈活且解耦的程式碼:
https://realpython.com/duck-typing-python/
用 Python 實作最小可用的 PostgreSQL:
https://ivdl.co.za/2024/03/02/pretending-to-be-postgresql-part-one-1/
給框架開發者的建議:
https://deven.codes/posts/building-for-builders/
Python 潮流周刊第一季精華合集(1~30):
https://pythoncat.top/posts/2023-12-11-weekly
grok-1:馬斯克開源的 Grok:
https://github.com/xai-org/grok-1
DarkGPT:基於 GPT-4-200K,查詢泄露的資料庫:
https://github.com/luijait/DarkGPT
structlog:簡單、強大、快速的 Python 日誌記錄庫:
https://github.com/hynek/structlog
pydumpling: 針對 Python 的異常偵錯程式:
https://github.com/cocolato/pydumpling
can_ada:快速且符合規範的 URL 解析庫:
https://github.com/tktech/can_ada
Mindgraph:使用 AI 生成和查詢不斷擴充套件的知識圖譜:
https://github.com/yoheinakajima/mindgraph
speechbrain:基於 PyTorch 的語音工具包:
https://github.com/speechbrain/speechbrain
python-anyconfig:以通用 API 載入和轉儲各種格式的配置檔:
https://github.com/ssato/python-anyconfig
Llama-Chinese: Llama 中文社群,最好的中文 Llama 大模型:
https://github.com/LlamaFamily/Llama-Chinese
python-for-android:將 Python 程式變成 Android APK:
https://github.com/kivy/python-for-android
img2img-turbo:Stable Diffusion turbo 實作的 sketch2image、day2night 等:
https://github.com/GaParmar/img2img-turbo
ludic:用純 Python 構建動態 HTML 頁面的輕量級框架:
https://github.com/paveldedik/ludic
帶大家感受一下沒有 GIL 的 CPython:
https://www.bilibili.com/video/BV1im411R7UB
ruff、uv 和 Astral:Python 工具鏈,使用 Rust 提速:
https://podcast.pythontest.com/episodes/ruff-astral-uv-charlie-marsh
uv - Python 包的下一次演變?:
https://talkpython.fm/episodes/show/453/uv-the-next-evolution-in-python-packages
Python貓:
https://img.pythoncat.top/pythoncat.png
微信公眾號:
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
如果你覺得本文有幫助
請慷慨 分享 和 點贊 ,感謝啦 !