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

来源:https://www.cnblogs.com/pythonista/archive/2023/05/20/17417690.html
-Advertisement-
Play Games

前言: 最近生產環境系統發現一個疑難雜症,看了很久的問題但是始終無法定位到問題並處理,然後查閱了相關資料也是定位不到問題,不過資料查閱卻給了個新的思路,以此為跳板最終解決了問題。 一、問題描述 功能介紹: “主計劃拆分子計劃”是APS系統很常見的功能,功能大概意思是用戶可選多個主計劃一次性進行“展開 ...


這裡記錄每周值得分享的 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


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、XSS攻擊 全稱跨站腳本攻擊,簡稱XSS攻擊,攻擊者通過在目標網站上HTML註入篡改網頁來插入惡意腳本, 當用戶在瀏覽網頁時獲取用戶的cookie等敏感信息,進一步做一些其他危害的操作。 根據攻擊的來源,該攻擊還可以分為: 1)存儲型攻擊:一般是在有評論功能的網站將惡意代碼當作評論內容存儲到服務 ...
  • 這裡給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 一、導出靜態數據 1、安裝 vue-json-excel npm i vue-json-excel 註意,此插件對node有版本要求,安裝失敗檢查一下報錯是否由於node版本造成! 2、引入並註冊組件(以全局為例) import Vue ...
  • **本文為千鋒資深前端教學老師帶來的【JavaScript全解析】系列,文章內含豐富的代碼案例及配圖,從0到1講解JavaScript相關知識點,致力於教會每一個人學會JS!** **文末有本文重點總結,可以收藏慢慢看\~ 更多技術類內容,主頁關註一波!** # ES6函數中參數的預設值 給函數的形 ...
  • 一.業務描述 最近在負責公司一個語音的微服務模塊優化,這個模塊主要的業務是:1.天貓精靈、小度、若琪、小京魚、小愛同學、思必馳這些第三方音響對我們的用戶進行oauth2/JWT授權; 2.這些第三方音響服務調用我們的設備發現介面對公司的設備信息在第三方平臺進行一個存儲;3.第三方平臺對用戶發出的語音 ...
  • 關於JWT,可以說是分散式系統下的一個利器,我在我的很多項目實踐中,認證系統的第一選擇都是JWT。它的優勢會讓你欲罷不能,就像你領優惠券一樣。 ...
  • ## 創建阻塞的 EchoClient 客戶程式一般不需要同時建立與伺服器的多個連接,因此用一個線程,按照阻塞模式運行就能滿足需求 ```java public class EchoClient { private SocketChannel socketChannel = null; public ...
  • ## 1. 安裝Django 在命令行中輸入以下命令安裝Django ```shell pip install django ``` ## 2. 創建Django項目 在命令行中輸入以下命令創建一個名為myblog的Django項目 ```shell django-admin startprojec ...
  • ## 文章首發 [【重學C++】01| C++ 如何進行記憶體資源管理?](https://mp.weixin.qq.com/s/ZhRhN07wjypnkWXcu_Lz3g) ## 前言 大家好,我是只講技術乾貨的會玩code,今天是【重學C++】的第一講,我們來學習下C++的記憶體管理。 與java ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...