當前位置: 妍妍網 > 碼農

Python 潮流周刊#43:在開源與家庭之間,他選擇了家庭

2024-03-23碼農

請給「 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

    [2]

    電報頻道: https://t.me/pythontrendingweekly

    [3]

    我的開源優先級轉變了: https://gregoryszorc.com/blog/2024/03/17/my-shifting-open-source-priorities/

    [4]

    如何遠端喚醒家裏的電腦?: https://bernsteinbear.com/blog/wakeonlan/

    [5]

    Python 程式的記憶體占用情況: https://codebeez.nl/blogs/the-memory-footprint-of-your-python-application/

    [6]

    正規表式字元「$」並不意味著「字串末尾」: *https://sethmlarson.dev/regex-$-matches-end-of-string-or-newline*

    [7]

    介紹 Python 中所有的雙下方法: https://www.pythonmorsels.com/every-dunder-method/

    [8]

    Python 多語言支持實作國際化與在地化的最佳實踐: https://juejin.cn/post/7348264185325568036

    [9]

    在 Windows 上利用 Qwen 大模型搭建一個 ChatGPT 式的問答小助手: https://juejin.cn/post/7347670979634167823

    [10]

    (如何(用Python)開發一個(Lisp)直譯器): https://www.norvig.com/lispy.html

    [11]

    使用 Python 解析 URL: https://tkte.ch/articles/2024/03/15/parsing-urls-in-python.html

    [12]

    Python 鴨子類別型:編寫靈活且解耦的程式碼: https://realpython.com/duck-typing-python/

    [13]

    用 Python 實作最小可用的 PostgreSQL: https://ivdl.co.za/2024/03/02/pretending-to-be-postgresql-part-one-1/

    [14]

    給框架開發者的建議: https://deven.codes/posts/building-for-builders/

    [15]

    Python 潮流周刊第一季精華合集(1~30): https://pythoncat.top/posts/2023-12-11-weekly

    [16]

    grok-1:馬斯克開源的 Grok: https://github.com/xai-org/grok-1

    [17]

    DarkGPT:基於 GPT-4-200K,查詢泄露的資料庫: https://github.com/luijait/DarkGPT

    [18]

    structlog:簡單、強大、快速的 Python 日誌記錄庫: https://github.com/hynek/structlog

    [19]

    pydumpling: 針對 Python 的異常偵錯程式: https://github.com/cocolato/pydumpling

    [20]

    can_ada:快速且符合規範的 URL 解析庫: https://github.com/tktech/can_ada

    [21]

    Mindgraph:使用 AI 生成和查詢不斷擴充套件的知識圖譜: https://github.com/yoheinakajima/mindgraph

    [22]

    speechbrain:基於 PyTorch 的語音工具包: https://github.com/speechbrain/speechbrain

    [23]

    python-anyconfig:以通用 API 載入和轉儲各種格式的配置檔: https://github.com/ssato/python-anyconfig

    [24]

    Llama-Chinese: Llama 中文社群,最好的中文 Llama 大模型: https://github.com/LlamaFamily/Llama-Chinese

    [25]

    python-for-android:將 Python 程式變成 Android APK: https://github.com/kivy/python-for-android

    [26]

    img2img-turbo:Stable Diffusion turbo 實作的 sketch2image、day2night 等: https://github.com/GaParmar/img2img-turbo

    [27]

    ludic:用純 Python 構建動態 HTML 頁面的輕量級框架: https://github.com/paveldedik/ludic

    [28]

    帶大家感受一下沒有 GIL 的 CPython: https://www.bilibili.com/video/BV1im411R7UB

    [29]

    ruff、uv 和 Astral:Python 工具鏈,使用 Rust 提速: https://podcast.pythontest.com/episodes/ruff-astral-uv-charlie-marsh

    [30]

    uv - Python 包的下一次演變?: https://talkpython.fm/episodes/show/453/uv-the-next-evolution-in-python-packages

    [31]

    Python貓: https://img.pythoncat.top/pythoncat.png

    [32]

    微信公眾號: https://img.pythoncat.top/python_cat.jpg

    [33]

    部落格: https://pythoncat.top

    [34]

    RSS: https://pythoncat.top/rss.xml

    [35]

    信件: https://pythoncat.substack.com

    [36]

    RSS: https://pythoncat.substack.com/feed

    [37]

    Github: https://github.com/chinesehuazhou/python-weekly

    [38]

    Telegram: https://t.me/pythontrendingweekly

    [39]

    Twitter: https://twitter.com/chinesehuazhou

    如果你覺得本文有幫助

    請慷慨 分享 點贊 ,感謝啦