這裡記錄每週值得分享的 Python 及通用技術內容,部分內容為英文,已在小標題註明。(本期標題取自其中一則分享,不代表全部內容都是該主題,特此宣告。)
文章&教程
文章討論了程式設計中處理錯誤的四種常見方法:返回錯誤程式碼(C、Go)、異常(Java、C#、Python、C++)、回撥函式(JavaScript)和 Result 物件(Haskell、Rust、Kotlin)。對每種方法進行了分析,介紹了它們的優缺點以及使用時需要注意的地方。
2、深入理解 Python 虛擬機器:描述器實現原理與原始碼分析
文章介紹了描述器的實現原理,分析了 CPython 原始碼中描述器相關的位元組碼指令,並使用 Python 程式碼解釋了描述器的執行邏輯。文章出自 Github 上的《深入理解 Python 虛擬機器系列》,該系列已含 20+ 文章。
最近 AI 孫燕姿太火了!文章基於 Python3.10 和開源庫 so-vits-svc(高表現力的語音合成模型)、Spleeter(人聲和伴奏分離)和 FFMPEG(聲音與伴奏合併),手把手演示了讓 AI 孫燕姿演唱歌曲。(PS.由於擔心侵權風險,so-vits-svc 專案已經歸檔了)
文章介紹了 Python 的 C 語言 API 相關特性,最後實現了一個模仿官方 datetime
的 C 擴充套件模組。文章出自《Python 之 C 語言 API 系列教程》的第一篇,該系列目前已更新兩篇。
這是一個系列文章,目前包含 31 篇文章,最近介紹的幾個工具是資料庫相關的:Neo4j(一個 NoSQL 圖資料庫,使用 Py2neo 操作)、PostgreSQL(一個關係型資料庫,使用 Psycopg2 操作)、MongoDB、Access、ClickHouse、Redis 等。
6、PEP-713:可呼叫的模組(英文)
Łukasz Langa 發起的新提案,提議支援在模組的全域性名稱空間中定義一個__call__物件以使模組可直接呼叫,__call__物件可以是一個標準函式或任意可呼叫物件。提案目前是草稿狀態,未採納。
7、“Externally managed environments”:當 PEP-668 影響了 pip(英文)
在較新 Linux 系統上使用 pip install 時可能遇到“externally managed environment”錯誤。原因:Linux 發行版已預裝某些 Python 包,pip install 可能導致系統包衝突。解決方法:開發時用虛擬環境;Docker 裡不用系統 Python;需最新工具時用 pipx。Python 包管理較為痛苦,短時間內難以改善。
8、Bevy v2.0:Python 的依賴注入框架(英文)
Bevy v2.0 是一個強大的依賴注入框架,可以幫助簡化 Python 應用程式的管理。文章介紹了三種解決依賴關係的方法:全域性變數、引數傳遞和依賴注入。Bevy v2.0 使用的方法包括引數注入、屬性注入、倉庫和依賴建構函式等。
專案&程式碼
最近幾個月,乘著人工智慧的東風,Github 上天天都被 AI 相關的專案屠榜,相信讀者們已經從各種渠道看到過那些知名的以 Python 為主的開源專案了。因此,為了不撞車,本週刊主要收錄一些小而美的專案。本期以中文開發者的專案為主。
一個“有生命的”語音助手 Python 專案,支援與前端通訊、語音識別、chatGPT 接入和語音合成。前端部分可渲染人物動畫、錄音和播放聲音。
具有以下特點:使用 top1 檢索替換輸入源特徵為訓練集特徵來杜絕音色洩漏;即便在相對較差的顯示卡上也能快速訓練;使用少量資料進行訓練也能得到較好結果(推薦至少收集 10 分鐘低底噪語音資料);可以透過模型融合來改變音色(藉助 ckpt 處理選項卡中的 ckpt-merge);簡單易用的網頁介面;可呼叫 UVR5 模型來快速分離人聲和伴奏。
一個可以將電子書翻譯成指定語言(原文譯文對照)的 Calibre 外掛。支援多種翻譯引擎,包括 Google 翻譯、ChatGPT 以及 DeepL。支援所有 Calibre 所支援的電子書格式(輸入格式 48 種,輸出格式 20 種)。支援批次翻譯、支援快取續譯、提供大量自定義設定。
一個完全重寫的超輕量級 Python 引擎,零依賴,零配置,可以在 Flash ≤ 64KB,RAM≤ 4KB 的平臺下執行,極易部署和擴充套件,具有大量的中文文件和影片資料。
播客&影片
1、硬地駭客:大廠程式設計師構建 “小生意”,更加從容應對裁員潮
"每一位 hacker,每一位開發者,每一位程式設計師,都值得擁有一個屬於自己的小生意”。這檔播客已釋出了幾期關於獨立開發者的話題,對作為程式設計師的我們,在技術、產品、創業等方面會有所啟發。
2、Talk Python To Me #414:漫步創業之路(英文)
在 4 月的 PyCon 上,有一個專門展示新型 Python 創業公司的展臺,叫做 Startup Row。在這期節目中,主播與這些公司的創始人分別聊了 5-10 分鐘,這期節目同時包含了播客和影片。
3、PythonBytes #335:應該開始用 mojo 了麼?(英文)
Mojo 是 LLVM 及 Swift 之父新開發的 AI 程式語言,號稱比 Python 快 35000 倍。Mojo 已支援 Python 的許多核心特性,包括 async/await、錯誤處理、可變引數等等,但是它仍然處於早期階段,缺少許多功能,比如還不支援類!
4、ChatGPT提示工程師|AI大神吳恩達教你寫提示詞(英文)
鼎鼎大名的吳恩達聯合 OpenAI,推出了一個面向開發者的 ChatGPT 提示詞課程。這是 B 站上的連結,配有雙語字幕。
問題&討論
知乎上的一個熱門問題,已有 7.4 萬人關注和 1200+ 回答。
2、[吐槽] conda 真是太難用了! 如何優雅地管理 Python 環境?
v2ex 上的一個帖子,吐槽使用 Conda 遇到了各種問題,包括安裝後找不到命令、安裝依賴卡住不動、影響系統更新等等。
3、允許在 for 迴圈的迴圈頭中使用推導式語法(英文)
這個帖子提出了一個想法:讓 Python 的 for 迴圈支援推導式語法“for i in x if i % 2 == 0:”。
贊助&支援
內容創作不易,如果你覺得有幫助,請隨意讚賞,或在愛發電進行支援!
另誠邀廣告主,歡迎透過私信聯絡。
關於週刊
Python 潮流週刊,精心篩選國內外的 200+ 資訊源,為你挑選最值得分享的文章、教程、開源專案、軟體工具、播客和影片、熱門話題等內容。願景:幫助所有讀者精進 Python 技術,並增長職業和副業的收入。