Python潮流週刊#2:Rust 讓 Python 再次偉大

這裏記錄每週值得分享的 Python 及通用技術內容,部分爲英文,已在小標題註明。(本期標題取自其中一則分享,不代表全部內容都是該主題,特此聲明。)

文章&教程

1、Python修飾器的函數式編程

介紹了裝飾器的實現原理、帶參裝飾器、多裝飾器、類裝飾器和幾個典型的示例。文章發佈於 2014 年,代碼用的還是 Python 2。之所以分享這篇文章,因爲它是左耳朵耗子唯一以 Python 爲話題的文章,而且寫得詳細到位。

2、asyncio 的一些高級用法

出自我們的老朋友@古明地覺 的新系列《asyncio 系列》,半個月內已連載 14 篇。真想問問他是如何做到如此高產又高質量的?!文章回答了:如何設計既能接收協程又能接收普通 Python 函數的 API,如何強制事件循環的迭代,如何在不傳遞參數的情況下在任務之間傳遞狀態……

3、Nginx+uWSGI 部署 Django 以及負載均衡操作

介紹了 uWSGI 和 Nginx 的配置,實現對 Django 服務的反向代理及負載均衡。該文出自仍在連載的《Django 系列》,目前該系列包含 44 篇文章,能作爲系統學習 Django 的參考材料。

4、Rye:一個實驗性質的Python包管理系統

Python 目前的包管理工具多得讓人眼花繚亂,而 Conda 和操作系統的包管理器也存在諸多問題(本週刊第一期就有兩則相關內容)。Flask 作者 Armin Ronacher 用 Rust 開發的 rye,借鑑了 Rust 包管理的經驗,試圖提供一個標準化的解決方案。這篇文章介紹了 rye 的安裝及使用。

5、PyInstaller:將你的Python代碼打包成獨立應用程序

PyInstaller 可將 Python 程序打包爲一個可執行文件,支持多個平臺如 Windows、Mac 和 Linux。這是一篇簡單清晰的使用教程,除了基礎介紹外,難得的是它還介紹了兩種打包方式的優缺點,以及打包後常見的 5 個問題。

6、如何在 Python 中實現真正的多線程(英文)

Python 3.12 即將推出“Per-Interpreter GIL(PEP-684)”特性,它允許 Python 實現真正的並行處理。代碼雖然已在 alpha 版本中,但目前只能通過 C-API 使用。文章使用 CPython 的test 模塊演示了子解釋器的示例。

7、GIL vs. nogil: 改動一行代碼,提升十倍 I/O 性能(英文)

nogil 項目是另一個試圖實現真正多線程的方案,這篇文章測試發現 CPython 3.9-nogil 在單文件和多文件的情況下,比未修改的 CPython 3.9 分別快 2.5 倍和 10 倍。nogil 項目最新的進展是形成了正式的 PEP-703,相關介紹在此

8、如何在 PyCharm 中創建一個密碼生成器?(英文)

PyCharm 官方推出的文章教程,指導在 PyCharm 中創建項目、導入包、使用 Typer 庫創建 CLI 應用、運行和調試代碼、創建和編輯運行配置,適合於新人學習練手。另外,PyCharm 2023.1.2 版本剛剛發佈,可以去嚐鮮!

9、Python 元類教程(帶示例)(英文)

在 Python 中,一切都是對象,包括。元類是 Python 的一項強大功能,允許你在運行時動態地創建類(實際是創建一個type 類型的對象)。文章探討元類的基礎知識,以及更高級的功能和示例。

10、當在終端輸入“ls”後會發生什麼?(英文)

有一道很常見的面試題:“當在瀏覽器輸入 google.com 後會發生什麼?”由於見得多了,每個人都能回答個一二,但是,經常跟終端打交道的我們,能否回答這個問題呢:當在終端輸入命令後會發生什麼?文章主要介紹了終端的歷史、啓動過程、命令的解析和執行過程。

項目&資源

1、WingetUI:更好用的包管理器 UI(英文)

該項目的目標是爲 Win 10-11 中最常見的 CLI 包管理器(如 Winget、Scoop 和 Chocolatey)創建一個直觀的 GUI。已支持軟件包的安裝、更新和卸載、排隊安裝、消息通知、黑暗模式、導入/導出等功能。

2、pandas-ai:支持 AI 功能的 Pandas(英文)

Pandas 無疑是目前最流行的數據分析和處理工具,當它結合了生成式 AI 的能力後,會不會更好用呢?答案似乎是的!pandasai 項目支持用文字的方式操作 Pandas 的數據對象,可簡化很多 Pandas 庫的操作。

3、promptulate:一個強大的 LLM Prompt Layer 框架

一個專爲 Prompt Engineer 設計的 LLM Prompt Layer 框架,支持連續對話、角色預設、對話存儲、工具擴展等功能,可以無需代理直接訪問,開箱即用。 通過 promptulate,你可以輕鬆構建起屬於自己的 GPT 應用程序。

4、MicroPython:面向微控制器和嵌入式系統的 Python(英文)

MicroPython 新發布了 1.20 版本,引入了一個新的輕量級包管理器,減小了代碼大小,並增加了對許多新板的支持。另外,LWN 的這篇文章對此版本做了介紹,文章還提到 Anaconda 有可能在 Q2 將 PyScript 的運行時從 Pyodide 替換爲 MicroPython。

5、DB-GPT:以數據庫爲基礎的 GPT 實驗項目

使用本地化的 GPT 大模型與你的數據和環境交互,無數據泄露風險,100% 私密,100% 安全。基於 FastChat 構建大模型運行環境,並提供 vicuna 作爲基礎的大語言模型,通過 LangChain 提供私域知識庫問答能力,支持插件模式,在設計上原生支持 Auto-GPT 插件。

播客&視頻

1、Ep 40. Rust 和 PyO3:讓 Python 再次偉大

斷更許久的《捕蛇者說》播客迴歸了!本期的嘉賓是 PyO3 項目的維護者,他的另一個身份是 wechatpy 的作者。Rust 和 PyO3 項目能放大 Python 的優勢,並能改造 Python 的應用生態。我們曾推薦過性能最快的代碼分析工具 Ruff,另外 Flask 作者新開發的包管理工具 rye,它們都是 Rust 與 Python 結合的產物。(題外話:看到了捕蛇者說的三位主播發推/發博緬懷左耳朵耗子,想不到他對 Python 圈子有這麼多淵源。R.I.P)

2、Talk Python to Me #415: Future of Pydantic and FastAPI(英文)

Pydantic 2.0 使用 Rust 重寫了核心及頂層的代碼,將對構建在其之上的庫產生積極的影響,比如 FastAPI。播客邀請了 Pydantic 的 Samuel Colvin 以及 FastAPI 的 Sebastián Ramírez 一起採訪,話題度很新!

3、再訪《流暢的 Python》作者 Luciano Ramalho(英文)

我在上個月推薦過新上市的《流暢的 Python》中文第二版(鏈接),這裏補充兩則相關材料。這期播客來自 thoughtworks,是在《Fluent Python》英文第二版上市前的訪談,介紹了關於 Python 發展、不同語言的對比、新書的變化等。另外,他們還在 2020 年新書寫作期間錄了一期“The future of Python”,兩期播客都有完整的文字稿。

4、最常用的七種分佈式系統模式(英文)

一則簡短的科普視頻,介紹了七種分佈式系統模式:Ambassador、Circuit Breaker、CQRS、Event Sourcing、Leader Election、Publisher/Subscriber、Sharding。視頻中的動畫和圖例都非常直觀和舒適,讓人賞心悅目。

問題&討論

1、作爲程序員,有什麼提升生活/工作體驗的 App、硬件、服務?

V2ex 上的一個帖子,大家對這樣的話題似乎很有發言欲。我在此最想推薦的 APP 是 Feedly 和 Substack,用於閱讀 RSS 和 Newsletter。Feedly 對本週刊的素材採集幫助極大!(心願:依靠讀者的打賞,讓我用上 Feedly Pro+ 的 AI 功能!)

2、rye 應該存在麼?(英文)

前文已提到過 rye,那麼,mitsuhiko 是出於什麼考慮而開發了它呢?它想解決什麼樣的問題,想打造出一款什麼樣的工具呢?Python 官方對包管理會有什麼發展支持呢?Github 上的這個問題引起了廣泛的討論。

3、你是怎樣開始程序員職業生涯的?

V2ex 上的帖子,樓主分享了自己從讀書到就業前幾年的故事,評論區有不少人分享了自己的經歷。你是如何開始自己的程序員之路的呢?

贊助&支持

內容創作不易,如果你覺得有幫助,請隨意讚賞買杯咖啡或在愛發電進行支持!

另誠邀廣告主,歡迎通過私信聯繫。

關於週刊

Python 潮流週刊,精心篩選國內外的 200+ 信息源,爲你挑選最值得分享的文章、教程、開源項目、軟件工具、播客和視頻、熱門話題等內容。願景:幫助所有讀者精進 Python 技術,並增長職業和副業的收入。

訂閱方式:Python貓 | RSS | 郵件 | Github

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章