當前位置: 妍妍網 > 碼農

Python 潮流周刊#44:Mojo 本周開源了;AI 學會生成音樂了

2024-03-31碼農

請給「 Python貓 」加星標 ,以免錯過文章推播

你好,我是貓哥。這裏每周分享優質的 Python、AI 及通用技術內容,大部份為英文。本周刊開源,歡迎 投稿 [1] 。另有 電報頻道 [2] 作為副刊,補充釋出更加豐富的資訊,歡迎關註。

特別提醒: 本期周刊贈書 5 本【明解Python演算法與數據結構】,詳情見文末。

本文部落格版連結(更好的閱讀體驗):https://pythoncat.top/posts/2024-03-30-weekly

🦄文章&教程

1、 蒙特婁效應:為什麽程式語言需要有風格沙皇 [3]

討論了程式語言在規模擴大時面臨的風格多樣性問題,提出了「語言風格沙皇」( style Czar)的概念。作者提到 Scala 過於靈活、C++ 新舊標準共存、Python PEP-8 沒有與時俱進,呼籲社群應該有人(例如語言創造者)引導社群發展出統一的風格標準。

2、 去中心化的邊緣計算平台 [4]

介紹了「Everywhere Computer」,旨在將計算任務分布到一個廣泛的開放網路上,包括個人裝置、區域網路中的其他裝置、雲節點集群等。介紹了如何使用 Rust、JavaScript 和 Python 編寫具體的函式,並將它們編譯為 Wasm 元件。

3、 設計一個純 Python Web 框架 [5]

Reflex 是一個純 Python 全棧 Web 框架(Github 15K star),其作者介紹了 Reflex 的架構,包括前後端的實作細節和工作原理。

Reflex的工作原理圖

4、 修復 PyPy 增量 GC 中的 一個 bug [6]

作者用將近一年時間定位 PyPy 中一個奇怪且難以復現的 BUG,文章介紹了他采用的各種定位方法、這個 BUG 出現的原因、以及在偵錯時發現的其它問題。目前修復已合入 PyPy 主分支。

5、 復活 PyMiniRacer,Python 中的 V8 [7]

如何在 Python 計畫中執行 JavaScript?PyMiniRacer 是一種方法,但舊計畫年久失修,作者接手了它,做了很多的更新,文章介紹了新版本的變更項以及未來的計劃。

6、 Python 與 Javascript 進行資料通訊 [8]

文章介紹了如何實作兩種語言的相互呼叫,實作數據跨語言計畫的傳遞。Python 呼叫 JavaScript 用了 pyjsparser PyV8 ,反向用了 node-python 、WebSockets 和 HTTP 請求。

7、 更適合慢函式呼叫的 Python 緩存實作 [9]

介紹了一種使用檔而非記憶體的緩存方案,類似於 lru_cache ,它提供了 file_cache 裝飾器,主要優點是能持久化緩存結果。文章詳細介紹了實作的程式碼。

8、 使用 Collectfasta 加速 Django 的 collectstatic 命令 [10]

介紹了一個可加速 Django 框架中 collectstatic 命令的執行速度的工具,包括如何安裝和配置、如何將其整合到 Django 計畫中以提高效能。還提供了一些效能提升的指標和最佳實踐建議。

9、 用原生 Python 擴充套件和 Dispatch 實作分布式協程 [11]

分布式協程是可以掛起、序列化並在另一個行程中恢復的函式,與分布式排程器(如 Dispatch)結合使用,可簡化軟體的建立過程。Python 原生支持協程,但協程本身不能被序列化,文章介紹了如何解決這個問題,以及如何處理無法序列化的檔和網路控制代碼、如何處理大型物件以及如何處理全域物件和程式碼更新等問題。

10、 使用 Numba 加快程式碼速度的錯誤方法 [12]

如果基於 NumPy 的程式碼太慢,有時可用 Numba 來加速。但由於它的型別註解和編譯選項,錯誤使用將導致效能變慢,文章分析了相關問題,並給出了最佳化的建議。

11、 關於最佳化 Django 系統檢查框架 [13]

Django 的 system check framework 是一種內建機制,可在執行 Django 命令時自動檢查和報告潛在的配置及套用狀態問題。作者透過效能分析和程式碼審查,發現並實作了多項最佳化措施,提升了範例約 50% 的執行速度。所做最佳化將在 Django 5.1 版本釋出。

12、 大數定律,為什麽去賭場是個壞主意 [14]

文章透過數據分析的方法(蒙地卡羅方法)模擬拋硬幣、輪盤、大樂透等玩法,結果發現輸的機率非常大,這告訴了我們一個道理就是……

🎁 Python潮流周刊 🎁每 30 期為一季,第一季的精華內容已整理成一篇,方便你隨時檢視。線上存取地址: Python 潮流周刊第一季精華合集(1~30) [15]

🐿️計畫&資源

1、 mojo:Mojo 程式語言開源了 [16]

Mojo 是一種新的程式語言,試圖將 Python 的語法及生態與系統編程及超編程相結合,彌補研究與生產之間的差距。(star 18.5K)

2、 Suno-API:基於 Python 和 FastAPI 的非官方 Suno API [17]

目前支持生成歌曲、歌詞等。內建維護 token 與保活功能,無需擔心 token 過期問題。(附:另一個 suno 逆向工程 API [18]

3、 blacken-docs:對文件中的 Python 程式碼塊上執行「black」 [19]

一個命令列工具,支持在 Markdown、reStructuredText 和 LaTex 檔中用 black 格式化 Python 程式碼塊。(投稿自@Chao)

4、 pathvalidate:用於規範化/驗證字串,例如檔名和檔路徑 [20]

一個用於處理檔名和檔路徑字串的實用工具,支持刪除無效字元、替換平台保留字、刪除不可打印字元、參數校驗、多字節字元、支持多平台,等等。(投稿自@Chao)

5、 LunarLink: 基於HttpRunner + Django + Vue + Element UI 的介面自動化測試平台 [21]

除題目所述,它還用到以下技術棧:Nginx、RabbitMQ、Redis、MySQL 和 Docker 等,支持登入、計畫管理、介面管理、用例管理、流量錄制、配置管理、定時任務、報告管理等功能。

6、 leaping:輕量級的 Python 測試偵錯程式 [22]

一個簡單、快速、輕量級的 Python 測試偵錯程式,支持跟蹤程式碼的執行,並允許用基於 LLM 自然語言的偵錯程式追溯檢查程式的狀態。

7、 keepyourmouthshut:用 AI 能力錄制播客 [23]

以面向開發者的方式建立播客,不需要任何昂貴的裝置。它從使用者處獲取輸入,以此生成指令碼和基於該指令碼的音訊檔。依賴 FFMPEG llmOS

8、 MoneyPrinterTurbo:利用AI大模型,一鍵生成高畫質短視訊 [24]

只需提供一個視訊主題或關鍵詞,就可全自動生成視訊文案、視訊素材、視訊字幕、視訊背景音樂,然後合成一個高畫質的短視訊。支持 OpenAI moonshot Azure gpt4free one-api 通義千問 等多種模型。(star 5.5K)

9、 AIOS:LLM 代理作業系統 [25]

將大語言模型嵌入到作業系統中,使作業系統「有靈魂」。旨在最佳化資源分配,促進跨代理的上下文切換,實作代理的並行執行,為代理提供工具服務,維護代理的存取控制。

AI作業系統的架構圖

10、 LaVague:使用大行動模型框架實作自動化 [26]

提供了一個將自然語言查詢轉換為 Selenium 程式碼的引擎,使使用者或其它 AI 能夠輕松自動化、輕松描述 Web 工作流程並在瀏覽器上實作自動化。(star 3.5K)

11、 Gmeek:一個完全使用 Github 的部落格框架 [27]

超輕量級個人部落格樣版,完全基於 Github Pages Github Issues Github Actions 。不需本地部署,從搭建到寫作,只需要 18 秒,2 步搭建好部落格,第 3 步就是寫作。

12、 posthog:提供開源產品分析、會話錄制、功能標記和 A/B 測試 [28]

一個開源的產品分析工具,支持自托管。旨在為企業提供一個可控制、可客製且符合數據私密要求的分析解決方案。有免費的 cloud 版本。(star 16.5K)

13、 devika:Cognition AI 的 Devin 的開源替代品 [29]

最近大火的 Devin 的開源替代品,可理解高級人類指令並分解為步驟,研究相關資訊,並編寫程式碼以實作給定的目標。它利用大語言模型、規劃和推理演算法以及 Web 瀏覽能力來智慧開發軟體。(star 13K)

🐢贈書福利

非週期性的福利活動,本期贈書 5 本【明解Python演算法與數據結構】,開獎時間 4 月 5 日 。請給 Python貓 [30] 公眾號發送數位「 8044 」,獲取抽獎小程式碼。

日本編程教育界泰鬥,暢銷書【明解C語言】作者傾力打造!136 段程式碼 + 213 幅圖表,透徹講解演算法與數據結構基礎知識,比課本更生動、更易懂!原版系列累計銷量超 120 萬冊,榮獲日本工學教育協會著作獎。

🐼歡迎訂閱

  • 微信公眾號 [31] :除更新周刊外,還釋出其它原創作品,並轉載一些優質文章。(可加好友,可加讀者交流群)

  • 部落格 [32] 及 RSS [33] :我的獨立部落格,上面有歷年原創/轉譯的技術文章,以及從 2009 年以來的一些隨筆。

  • 信件 [34] 及 RSS [35] :在 Substack 上開通的頻道,滿足你透過信件閱讀時事通訊的訴求。

  • Github [36] :你可以獲取本周刊的 Markdown 原始檔,做任何想做的事!

  • Telegram [37] :除了釋出周刊的通知外,我將它視為一個「副刊」,補充釋出更加豐富的資訊。

  • Twitter [38] :我的關註列表裏有大量 Python 相關的開發者與組織的帳號。

  • 參考資料

    [1]

    投稿: https://github.com/chinesehuazhou/python-weekly

    [2]

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

    [3]

    蒙特婁效應:為什麽程式語言需要有風格沙皇: https://earthly.dev/blog/language- style-czar/

    [4]

    去中心化的邊緣計算平台: https://fission.codes/blog/functions-everywhere-only-once/

    [5]

    設計一個純 Python Web 框架: https://reflex.dev/blog/2024-03-21-reflex-architecture/

    [6]

    修復 PyPy 增量 GC 中的 一個 bug: https://www.pypy.org/posts/2024/03/fixing-bug-incremental-gc.html

    [7]

    復活 PyMiniRacer,Python 中的 V8: https://bpcreech.com/post/mini-racer/

    [8]

    Python 與 Javascript 進行資料通訊: https://juejin.cn/post/7351690896918003775

    [9]

    更適合慢函式呼叫的 Python 緩存實作: https://docs.sweep.dev/blogs/file-cache

    [10]

    使用 Collectfasta 加速 Django 的 collectstatic 命令: https://jasongi.com/2024/03/04/speed-up-djangos-collectstatic-command-with-collectfasta/

    [11]

    用原生 Python 擴充套件和 Dispatch 實作分布式協程: https://stealthrocket.tech/blog/distributed-coroutines-in-python/

    [12]

    使用 Numba 加快程式碼速度的錯誤方法: https://pythonspeed.com/articles/slow-numba/

    [13]

    關於最佳化 Django 系統檢查框架: https://adamj.eu/tech/2024/03/23/django-optimizing-system-checks/

    [14]

    大數定律,為什麽去賭場是個壞主意: https://easylang.dev/apps/tutorial_mcarlo.html

    [15]

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

    [16]

    mojo:Mojo 程式語言開源了: https://github.com/modularml/mojo

    [17]

    Suno-API:基於 Python 和 FastAPI 的非官方 Suno API: https://github.com/SunoAI-API/Suno-API

    [18]

    suno 逆向工程 API: https://github.com/yihong0618/SunoSongsCreator

    [19]

    blacken-docs:對文件中的 Python 程式碼塊上執行「black」: https://github.com/adamchainz/blacken-docs

    [20]

    pathvalidate:用於規範化/驗證字串,例如檔名和檔路徑: https://github.com/thombashi/pathvalidate

    [21]

    LunarLink: 基於HttpRunner + Django + Vue + Element UI 的介面自動化測試平台: https://github.com/tahitimoon/LunarLink

    [22]

    leaping:輕量級的 Python 測試偵錯程式: https://github.com/leapingio/leaping

    [23]

    keepyourmouthshut:用 AI 能力錄制播客: https://github.com/rajtilakjee/keepyourmouthshut

    [24]

    MoneyPrinterTurbo:利用AI大模型,一鍵生成高畫質短視訊: https://github.com/harry0703/MoneyPrinterTurbo

    [25]

    AIOS:LLM 代理作業系統: https://github.com/agiresearch/AIOS

    [26]

    LaVague:使用大行動模型框架實作自動化: https://github.com/lavague-ai/LaVague

    [27]

    Gmeek:一個完全使用 Github 的部落格框架: https://github.com/Meekdai/Gmeek

    [28]

    posthog:提供開源產品分析、會話錄制、功能標記和 A/B 測試: https://github.com/PostHog/posthog

    [29]

    devika:Cognition AI 的 Devin 的開源替代品: https://github.com/stitionai/devika

    [30]

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

    [31]

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

    [32]

    部落格: https://pythoncat.top

    [33]

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

    [34]

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

    [35]

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

    [36]

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

    [37]

    Telegram: https://t.me/pythontrendingweekly

    [38]

    Twitter: https://twitter.com/chinesehuazhou

    如果你覺得本文有幫助

    請慷慨 分享 點贊 ,感謝啦