Python潮流週刊#1:如何系統地自學Python?

豌豆花下貓發表於2023-05-13

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

文章&教程

1、程式語言的錯誤處理模式

文章討論了程式設計中處理錯誤的四種常見方法:返回錯誤程式碼(C、Go)、異常(Java、C#、Python、C++)、回撥函式(JavaScript)和 Result 物件(Haskell、Rust、Kotlin)。對每種方法進行了分析,介紹了它們的優缺點以及使用時需要注意的地方。

2、深入理解 Python 虛擬機器:描述器實現原理與原始碼分析

文章介紹了描述器的實現原理,分析了 CPython 原始碼中描述器相關的位元組碼指令,並使用 Python 程式碼解釋了描述器的執行邏輯。文章出自 Github 上的《深入理解 Python 虛擬機器系列》,該系列已含 20+ 文章。

3、人工智慧 AI 孫燕姿模型應用實踐

最近 AI 孫燕姿太火了!文章基於 Python3.10 和開源庫 so-vits-svc(高表現力的語音合成模型)、Spleeter(人聲和伴奏分離)和 FFMPEG(聲音與伴奏合併),手把手演示了讓 AI 孫燕姿演唱歌曲。(PS.由於擔心侵權風險,so-vits-svc 專案已經歸檔了)

4、用 C 語言寫一個 Python 包

文章介紹了 Python 的 C 語言 API 相關特性,最後實現了一個模仿官方 datetime 的 C 擴充套件模組。文章出自《Python 之 C 語言 API 系列教程》的第一篇,該系列目前已更新兩篇。

5、Python 工具箱系列文章

這是一個系列文章,目前包含 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 為主的開源專案了。因此,為了不撞車,本週刊主要收錄一些小而美的專案。本期以中文開發者的專案為主。

1、「數字生命」的服務端

一個“有生命的”語音助手 Python 專案,支援與前端通訊、語音識別、chatGPT 接入和語音合成。前端部分可渲染人物動畫、錄音和播放聲音。

2、一個基於VITS的簡單易用的語音轉換(變聲器)框架

具有以下特點:使用 top1 檢索替換輸入源特徵為訓練集特徵來杜絕音色洩漏;即便在相對較差的顯示卡上也能快速訓練;使用少量資料進行訓練也能得到較好結果(推薦至少收集 10 分鐘低底噪語音資料);可以透過模型融合來改變音色(藉助 ckpt 處理選項卡中的 ckpt-merge);簡單易用的網頁介面;可呼叫 UVR5 模型來快速分離人聲和伴奏。

3、電子書翻譯器(Calibre 外掛)

一個可以將電子書翻譯成指定語言(原文譯文對照)的 Calibre 外掛。支援多種翻譯引擎,包括 Google 翻譯、ChatGPT 以及 DeepL。支援所有 Calibre 所支援的電子書格式(輸入格式 48 種,輸出格式 20 種)。支援批次翻譯、支援快取續譯、提供大量自定義設定。

4、跨平臺的超輕量級嵌入式 Python 引擎

一個完全重寫的超輕量級 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 站上的連結,配有雙語字幕。

問題&討論

1、如何系統地自學Python?

知乎上的一個熱門問題,已有 7.4 萬人關注和 1200+ 回答。

2、[吐槽] conda 真是太難用了! 如何優雅地管理 Python 環境?

v2ex 上的一個帖子,吐槽使用 Conda 遇到了各種問題,包括安裝後找不到命令、安裝依賴卡住不動、影響系統更新等等。

3、允許在 for 迴圈的迴圈頭中使用推導式語法(英文)

這個帖子提出了一個想法:讓 Python 的 for 迴圈支援推導式語法“for i in x if i % 2 == 0:”。

贊助&支援

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

另誠邀廣告主,歡迎透過私信聯絡。

關於週刊

Python 潮流週刊,精心篩選國內外的 200+ 資訊源,為你挑選最值得分享的文章、教程、開源專案、軟體工具、播客和影片、熱門話題等內容。願景:幫助所有讀者精進 Python 技術,並增長職業和副業的收入。

週刊在 Github 開源,可以透過 issue 投稿

相關文章