前言: 最近生產環境系統發現一個疑難雜症,看了很久的問題但是始終無法定位到問題並處理,然後查閱了相關資料也是定位不到問題,不過資料查閱卻給了個新的思路,以此為跳板最終解決了問題。 一、問題描述 功能介紹: “主計劃拆分子計劃”是APS系統很常見的功能,功能大概意思是用戶可選多個主計劃一次性進行“展開 ...
這裡記錄每周值得分享的 Python 及通用技術內容,部分為英文,已在小標題註明。(本期標題取自其中一則分享,不代表全部內容都是該主題,特此聲明。)
文章&教程
介紹了裝飾器的實現原理、帶參裝飾器、多裝飾器、類裝飾器和幾個典型的示例。文章發佈於 2014 年,代碼用的還是 Python 2。之所以分享這篇文章,因為它是左耳朵耗子唯一以 Python 為話題的文章,而且寫得詳細到位。
出自我們的老朋友@古明地覺 的新系列《asyncio 系列》,半個月內已連載 14 篇。真想問問他是如何做到如此高產又高質量的?!文章回答了:如何設計既能接收協程又能接收普通 Python 函數的 API,如何強制事件迴圈的迭代,如何在不傳遞參數的情況下在任務之間傳遞狀態……
3、Nginx+uWSGI 部署 Django 以及負載均衡操作
介紹了 uWSGI 和 Nginx 的配置,實現對 Django 服務的反向代理及負載均衡。該文出自仍在連載的《Django 系列》,目前該系列包含 44 篇文章,能作為系統學習 Django 的參考材料。
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。
使用本地化的 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 上的這個問題引起了廣泛的討論。
V2ex 上的帖子,樓主分享了自己從讀書到就業前幾年的故事,評論區有不少人分享了自己的經歷。你是如何開始自己的程式員之路的呢?
贊助&支持
內容創作不易,如果你覺得有幫助,請隨意贊賞、買杯咖啡或在愛發電進行支持!
另誠邀廣告主,歡迎通過私信聯繫。
關於周刊
Python 潮流周刊,精心篩選國內外的 200+ 信息源,為你挑選最值得分享的文章、教程、開源項目、軟體工具、播客和視頻、熱門話題等內容。願景:幫助所有讀者精進 Python 技術,並增長職業和副業的收入。
訂閱方式:Python貓 | RSS | 郵件 | Github