Python潮流周刊#2:Rust让Python再次伟大

news2025/1/22 17:41:46

△点击上方“Python猫”关注 ,回复“1”领取电子书

8dee702d35f23eba34350acb13171e9f.jpeg

这里记录每周值得分享的 Python 及通用技术内容,部分为英文,已在小标题注明。(本期标题取自其中一则分享,不代表全部内容都是该主题,特此声明。)

文章&教程

1、Python修饰器的函数式编程[1]

介绍了装饰器的实现原理、带参装饰器、多装饰器、类装饰器和几个典型的示例。文章发布于 2014 年,代码用的还是 Python 2。之所以分享这篇文章,因为它是左耳朵耗子[2]唯一以 Python 为话题的文章,而且写得详细到位。

2、asyncio 的一些高级用法[3]

出自我们的老朋友@古明地觉 的新系列《asyncio 系列》,半个月内已连载 14 篇。真想问问他是如何做到如此高产又高质量的?!文章回答了:如何设计既能接收协程又能接收普通 Python 函数的 API,如何强制事件循环的迭代,如何在不传递参数的情况下在任务之间传递状态……

3、Nginx+uWSGI 部署 Django 以及负载均衡操作[4]

介绍了 uWSGI 和 Nginx 的配置,实现对 Django 服务的反向代理及负载均衡。该文出自仍在连载的《Django 系列》,目前该系列包含 44 篇文章,能作为系统学习 Django 的参考材料。

4、Rye:一个实验性质的Python包管理系统[5]

Python 目前的包管理工具多得让人眼花缭乱,而 Conda 和操作系统的包管理器也存在诸多问题(本周刊第一期就有两则相关内容)。Flask 作者 Armin Ronacher 用 Rust 开发的 rye,借鉴了 Rust 包管理的经验,试图提供一个标准化的解决方案。这篇文章介绍了 rye 的安装及使用。

5、PyInstaller:将你的Python代码打包成独立应用程序[6]

PyInstaller 可将 Python 程序打包为一个可执行文件,支持多个平台如 Windows、Mac 和 Linux。这是一篇简单清晰的使用教程,除了基础介绍外,难得的是它还介绍了两种打包方式的优缺点,以及打包后常见的 5 个问题。

6、如何在 Python 中实现真正的多线程[7](英文)

Python 3.12 即将推出“Per-Interpreter GIL(PEP-684)”特性,它允许 Python 实现真正的并行处理。代码虽然已在 alpha 版本中,但目前只能通过 C-API 使用。文章使用 CPython 的test 模块演示了子解释器的示例。

7、GIL vs. nogil: 改动一行代码,提升十倍 I/O 性能[8](英文)

nogil 项目[9]是另一个试图实现真正多线程的方案,这篇文章测试发现 CPython 3.9-nogil 在单文件和多文件的情况下,比未修改的 CPython 3.9 分别快 2.5 倍和 10 倍。nogil 项目最新的进展是形成了正式的 PEP-703,相关介绍在此[10]

33895f11883e0cfce75a7ea60cb4935a.png

8、如何在 PyCharm 中创建一个密码生成器?[11](英文)

PyCharm 官方推出的文章教程,指导在 PyCharm 中创建项目、导入包、使用 Typer 库创建 CLI 应用、运行和调试代码、创建和编辑运行配置,适合于新人学习练手。另外,PyCharm 2023.1.2[12] 版本刚刚发布,可以去尝鲜!

9、Python 元类教程(带示例)[13](英文)

在 Python 中,一切都是对象,包括。元类是 Python 的一项强大功能,允许你在运行时动态地创建类(实际是创建一个type 类型的对象)。文章探讨元类的基础知识,以及更高级的功能和示例。

10、当在终端输入“ls”后会发生什么?[14](英文)

有一道很常见的面试题:“当在浏览器输入 google.com 后会发生什么?”由于见得多了,每个人都能回答个一二,但是,经常跟终端打交道的我们,能否回答这个问题呢:当在终端输入命令后会发生什么?文章主要介绍了终端的历史、启动过程、命令的解析和执行过程。

项目&资源

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

该项目的目标是为 Win 10-11 中最常见的 CLI 包管理器(如 Winget、Scoop 和 Chocolatey)创建一个直观的 GUI。已支持软件包的安装、更新和卸载、排队安装、消息通知、黑暗模式、导入/导出等功能。

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

Pandas 无疑是目前最流行的数据分析和处理工具,当它结合了生成式 AI 的能力后,会不会更好用呢?答案似乎是的!pandasai 项目支持用文字的方式操作 Pandas 的数据对象,可简化很多 Pandas 库的操作。

3、promptulate:一个强大的 LLM Prompt Layer 框架[17]

一个专为 Prompt Engineer 设计的 LLM Prompt Layer 框架,支持连续对话、角色预设、对话存储、工具扩展等功能,可以无需代理直接访问,开箱即用。通过 promptulate,你可以轻松构建起属于自己的 GPT 应用程序。

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

MicroPython 新发布了 1.20 版本,引入了一个新的轻量级包管理器,减小了代码大小,并增加了对许多新板的支持。另外,LWN 的这篇文章[19]对此版本做了介绍,文章还提到 Anaconda 有可能在 Q2 将 PyScript 的运行时从 Pyodide 替换为 MicroPython。

5、DB-GPT:以数据库为基础的 GPT 实验项目[20]

使用本地化的 GPT 大模型与你的数据和环境交互,无数据泄露风险,100% 私密,100% 安全。基于 FastChat 构建大模型运行环境,并提供 vicuna 作为基础的大语言模型,通过 LangChain 提供私域知识库问答能力,支持插件模式,在设计上原生支持 Auto-GPT 插件。

be09906ccece012a30f6fd7b0618dcba.png

播客&视频

1、Ep 40. Rust 和 PyO3:让 Python 再次伟大[21]

断更许久的《捕蛇者说》播客回归了!本期的嘉宾是 PyO3 项目的维护者,他的另一个身份是 wechatpy 的作者。Rust 和 PyO3 项目能放大 Python 的优势,并能改造 Python 的应用生态。我们曾推荐过性能最快的代码分析工具 Ruff[22],另外 Flask 作者新开发的包管理工具 rye[23],它们都是 Rust 与 Python 结合的产物。(题外话:看到了捕蛇者说的三位主播发推/发博缅怀左耳朵耗子,想不到他对 Python 圈子有这么多渊源。R.I.P)

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

Pydantic 2.0 使用 Rust 重写了核心及顶层的代码,将对构建在其之上的库产生积极的影响,比如 FastAPI。播客邀请了 Pydantic 的 Samuel Colvin 以及 FastAPI 的 Sebastián Ramírez 一起采访,话题度很新!

3、再访《流畅的 Python》作者 Luciano Ramalho[25](英文)

我在上个月推荐过新上市的《流畅的 Python》中文第二版(链接[26]),这里补充两则相关材料。这期播客来自 thoughtworks,是在《Fluent Python》英文第二版上市前的访谈,介绍了关于 Python 发展、不同语言的对比、新书的变化等。另外,他们还在 2020 年新书写作期间录了一期“The future of Python”[27],两期播客都有完整的文字稿。

4、最常用的七种分布式系统模式[28](英文)

一则简短的科普视频,介绍了七种分布式系统模式:Ambassador、Circuit Breaker、CQRS、Event Sourcing、Leader Election、Publisher/Subscriber、Sharding。视频中的动画和图例都非常直观和舒适,让人赏心悦目。

bb4f7cd2e926695d84dc62ddebda2b7e.png

问题&讨论

1、作为程序员,有什么提升生活/工作体验的 App、硬件、服务?[29]

V2ex 上的一个帖子,大家对这样的话题似乎很有发言欲。我在此最想推荐的 APP 是 Feedly 和 Substack,用于阅读 RSS 和 Newsletter。Feedly 对本周刊的素材采集帮助极大!(心愿:依靠读者的打赏,让我用上 Feedly Pro+ 的 AI 功能!)

2、rye 应该存在么?[30](英文)

前文已提到过 rye,那么,mitsuhiko 是出于什么考虑而开发了它呢?它想解决什么样的问题,想打造出一款什么样的工具呢?Python 官方对包管理会有什么发展支持呢?Github 上的这个问题引起了广泛的讨论。

3、你是怎样开始程序员职业生涯的?[31]

V2ex 上的帖子,楼主分享了自己从读书到就业前几年的故事,评论区有不少人分享了自己的经历。你是如何开始自己的程序员之路的呢?

赞助&支持

内容创作不易,如果你觉得有帮助,请随意赞赏[32]、买杯咖啡[33]或在爱发电[34]进行支持!

另诚邀广告主,欢迎通过私信联系。

关于周刊

Python 潮流周刊,精心筛选国内外的 200+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。

订阅方式:Python猫[35] | RSS[36] | 邮件[37] | Github[38]

7d333d00fd1d7d832db158599557bfce.jpeg

参考资料

[1]

Python修饰器的函数式编程: http://coolshell.cn/articles/11265.html

[2]

左耳朵耗子: https://coolshell.cn/haoel

[3]

asyncio 的一些高级用法: https://www.cnblogs.com/traditional/p/17403428.html

[4]

Nginx+uWSGI 部署 Django 以及负载均衡操作: https://segmentfault.com/a/1190000043790186

[5]

Rye:一个实验性质的Python包管理系统: http://vra.github.io/2023/05/17/rye-intro/

[6]

PyInstaller:将你的Python代码打包成独立应用程序: https://juejin.cn/post/7232571353123487802

[7]

如何在 Python 中实现真正的多线程: https://martinheinz.dev/blog/97

[8]

GIL vs. nogil: 改动一行代码,提升十倍 I/O 性能: https://www.backblaze.com/blog/python-gil-vs-nogil-boost-i-o-performance-10x-with-one-line-change/

[9]

nogil 项目: https://pythoncat.top/posts/2021-11-14-GIL

[10]

在此: https://pythoncat.top/posts/2023-02-20-GIL

[11]

如何在 PyCharm 中创建一个密码生成器?: https://blog.jetbrains.com/pycharm/2023/05/create-passphrase-generator-in-pycharm/

[12]

PyCharm 2023.1.2: https://blog.jetbrains.com/pycharm/2023/05/pycharm-2023-1-2-is-out

[13]

Python 元类教程(带示例): https://coderslegacy.com/python-metaclass-tutorial/

[14]

当在终端输入“ls”后会发生什么?: https://www.warp.dev/blog/what-happens-when-you-open-a-terminal-and-enter-ls

[15]

WingetUI:更好用的包管理器 UI: https://github.com/marticliment/WingetUI

[16]

pandas-ai:支持 AI 功能的 Pandas: https://github.com/gventuri/pandas-ai

[17]

promptulate:一个强大的 LLM Prompt Layer 框架: https://github.com/Undertone0809/promptulate

[18]

MicroPython:面向微控制器和嵌入式系统的 Python: https://github.com/micropython/micropython/releases/tag/v1.20.0

[19]

这篇文章: https://lwn.net/Articles/931051

[20]

DB-GPT:以数据库为基础的 GPT 实验项目: https://github.com/csunny/DB-GPT

[21]

Ep 40. Rust 和 PyO3:让 Python 再次伟大: https://pythonhunter.org/episodes/ep40

[22]

Ruff: https://pythoncat.top/posts/2023-04-09-ruff

[23]

rye: https://github.com/mitsuhiko/rye

[24]

Talk Python to Me #415: Future of Pydantic and FastAPI: https://talkpython.fm/episodes/show/415/future-of-pydantic-and-fastapi

[25]

再访《流畅的 Python》作者 Luciano Ramalho: https://www.thoughtworks.com/insights/podcasts/technology-podcasts/fluent-python-revisited

[26]

链接: https://pythoncat.top/posts/2023-04-28-fluent

[27]

一期“The future of Python”: https://www.thoughtworks.com/insights/podcasts/technology-podcasts/future-python

[28]

最常用的七种分布式系统模式: https://youtu.be/nH4qjmP2KEE

[29]

作为程序员,有什么提升生活/工作体验的 App、硬件、服务?: https://www.v2ex.com/t/940584

[30]

rye 应该存在么?: https://github.com/mitsuhiko/rye/discussions/6

[31]

你是怎样开始程序员职业生涯的?: https://www.v2ex.com/t/940195

[32]

赞赏: https://img.pythoncat.top/wechat_code.png

[33]

买杯咖啡: https://www.buymeacoffee.com/pythoncat

[34]

爱发电: https://afdian.net/a/pythoncat

[35]

Python猫: https://img.pythoncat.top/python_cat.jpg

[36]

RSS: https://pythoncat.top/rss.xml

[37]

邮件: https://pythoncat.substack.com

[38]

Github: https://github.com/chinesehuazhou/python-weekly

c86c1e62426c2dafad40039ba0c71bf2.gif

如果你觉得本文有帮助

请慷慨分享点赞,感谢啦

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/550262.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux Network】I/O多路转接之select

目录 1. 初识select 1.1 select函数原型 1.2 理解select执行过程 1.3 socket就绪条件 1.4 select的特点 1.5 select优缺点 2. 基于select的多人聊天程序 server源代码: client的登录: 结果演示: Linux Network🌷 1. 初识select 系…

C++初阶--C++入门之基础学习

0.前言 C是一门非常好的编程语言,但可能在学习C的过程中会遇到很多困难。人们常说 “一个人走得很快,一群人会走的更远”, 所以就让我们一起攻坚克难,一起征服C吧!从本章开始,我们将开始C的基础学习&#x…

Linux简介及基础操作

1.Linux的作用: 商业服务器基本都是linux的、开源软件都先支持linux、大数据分析,机器学习首选linux、整个互联网地基基本由linux支撑起来。如: 生活中的手机是基于linux二次开发的,还有路由器也是基于linux开发的。 2.Linux是什…

acwing提高--多源BFS+最小步数模型+双端队列广搜

多源BFS 1.矩阵距离 题目https://www.acwing.com/problem/content/description/175/ #include<bits/stdc.h> using namespace std; #define x first #define y second typedef pair<int,int> PII; const int N1010; char g[N][N]; int dist[N][N]; PII q[N*N];…

【轻量化网络系列(2)】MobileNetV2论文超详细解读(翻译 +学习笔记+代码实现)

前言 上一篇我们介绍了MobileNetV1&#xff0c;主要是将普通Conv转换为dw和pw&#xff0c;但是在dw中训练出来可能会很多0&#xff0c;也就是depthwise部分得到卷积核会废掉&#xff0c;即卷积核参数大部分为0&#xff0c;因为权重数量可能过少&#xff0c;再加上Relu激活函数…

稳定币是个好生意

* * * 原创&#xff1a;刘教链 * * * 本月早些时候&#xff0c;市值第一的稳定币发行商Tether公布了其一季度的储备和盈利数据[1]。不能说是亮眼&#xff0c;只能说是非常亮眼。就看几个亮点吧&#xff1a; 1. 一季度净利润14.8亿美元&#xff0c;是2022年四季度的两倍多&…

关于Java中的抽象类注意事项

文章目录 &#x1f3c6;文章导读&#x1f342;抽象类的定义&#x1f342;抽象类的特性&#x1f342;总结&#xff1a;面试题普通类和抽象类有哪些区别&#xff1f;抽象类能使用final继承吗&#xff1f; &#x1f3c6;文章导读 在本篇文章中&#xff0c;对抽象类进行了一个详细的…

c++学习——c与c++const修饰的变量的区别

c语言下const修饰的变量 1、c语言下const修饰的变量都有空间 2. c语言的const修饰的全局变量具有外部链接属性 07 const修饰的变量.c #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <stdlib.h>const int a 10;//常…

1. Linux环境搭建及问题解决方案

本文介绍了Linux环境搭建的过程以及遇到的问题和解决方案&#xff0c;并且介绍了常用的Linux命令. 一、Linux环境搭建 整体所需的环节 安装VMware安装Linux &#xff08;这边我选的是Server版本&#xff09;安装配置Samba&#xff08;Samba是一种Linux和Windows之间进行文件共…

二层环路详解:交换机环路产生的过程和原因

前言&#xff1a; 在了解环路之前得先了解交换机的工作原理&#xff0c;当然交换机的基本工作原理其实非常简单&#xff0c;只有“单播转发与泛洪转发”、“交换机MAC地址表”这两个&#xff01;其他的如vlan&#xff0c;生成树等也是在此基础上增加的&#xff0c;弥补交换机基…

初始Linux的基本操作

上篇博客中&#xff0c;我介绍了关于Linux的相关概念&#xff0c;让我们初步的了解到Linux的重要性&#xff0c;在这篇博客中我会再讲一些Linux操作系统的理解。 一.操作系统 我们知道Linux是一个操作系统&#xff0c;而操作系统操作系统(英语&#xff1a;Operating System&…

[深度好文]10张图带你轻松理解关系型数据库系统的工作原理

[深度好文]10张图带你轻松理解关系型数据库系统的工作原理 原文(欢迎关注)&#xff1a;https://mp.weixin.qq.com/s/CNCfWRpv8QlICGvZkLG4Jw 尽管数据库在我们应用程序中扮演着储存几乎所有状态的关键角色&#xff0c;但人们对其运行原理的了解通常仅停留在较为浅显的层面&…

跟我一起使用 compose 做一个跨平台的黑白棋游戏(4)移植到compose-jb实现跨平台

前言 在上一篇文章中&#xff0c;我们已经实现了游戏的所有界面和逻辑代码&#xff0c;并且在 Android 上已经可以正常运行。 这篇文章我们将讲解如何将其从使用 jetpack compose 修改为使用 compose-jb 从而实现跨平台。 老规矩&#xff0c;先看效果图&#xff1a; 可以看到…

063:cesium设置带边界线材质(material-7)

第063个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中设置带边界折线材质,请参考源代码,了解PolylineOutlineMaterialProperty的应用。 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 文章目录 示例效果配置方式示例源代码(共89行)相关API参考…

Python-matplotlib中的pie(饼)图

Python-matplotlib中的pie&#xff08;饼&#xff09;图 %matplotlib inline import matplotlib.pyplot as pltm 51212 f 40742 m_perc m/(mf) f_perc f/(mf)colors [navy,lightcoral] labels ["Male","Female"]plt.figure(figsize(8,8)) paches,te…

为什么不胜任的人,反而获得晋升?

作者| Mr.K 编辑| Emma 来源| 技术领导力(ID&#xff1a;jishulingdaoli) 也许你有过这样的经历&#xff0c;自己勤勤恳恳地干活&#xff0c;每个月却只拿着微薄的薪水&#xff0c;有些人明明无法胜任工作&#xff0c;却像坐了火箭一样飞速晋升。这种现象在现实生活中无处不在…

3699元还配同价位最好屏幕!Redmi Book 14评测:几乎完美的“水桶”轻薄本

一、前言&#xff1a;4K价位最好屏幕 不久前&#xff0c;有网友让我推荐一台4000元价位的轻薄本&#xff0c;笔者直接选了一台搭载i5-13500H处理器且价格仅售4299元的某一线品牌产品。 但是&#xff0c;事后才发现不对&#xff0c;因为这款极具性价比的笔记本竟然用了45%NTSC色…

MIT6.824 lecture5上课笔记(涉及到Lab2A)- Go threads and raft

总结&#xff1a;本节课讲解了一些会在lab2中使用到的go的多线程技巧&#xff0c;会给一些简单的demo&#xff0c;lab2中可能会借鉴这些demo。 详细的Lab2 raft算法实现源码&#xff0c;请参考我的个人仓库&#xff08;记得点颗星星&#xff09;, 配合readme食用更佳。 MIT6.…

ChatGPT 使用 拓展资料:如何善用大语言模型的推理能力?

ChatGPT 使用 拓展资料:如何善用大语言模型的推理能力?