Python潮流周刊#2:Rust 让 Python 再次伟大
这里记录每周值得分享的 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
Python潮流周刊#2:Rust 让 Python 再次伟大的更多相关文章
- 为什么 Python、Go 和 Rust 都不支持三元运算符?
在编程时,我们经常要作条件判断,并根据条件的结果选择执行不同的语句块.在许多编程语言中,最常见的写法是三元运算符,但是,Python 并不支持三元运算符,无独有偶,两个最热门的新兴语言 Go 和 Ru ...
- 《码农周刊》干货精选--Python篇(转)
原文:http://baoz.me/446252 码农周刊,本人有修改 Python标准库,第三方库 按功能进行了分类,之前有一Pythoner说there is a library for ev ...
- Python 发展趋势:与 Rust 深度融合、更易于编写 Web 应用
大家好,我是猫哥,好久不见!2022 年末的时候,我不可避免地阳了,借着身体不舒服就停更了,接踵而至的是元旦和春节假期,又给自己放了假,连年终总结也鸽了,一懈怠就到了 2 月中旬-- 现在是我家娃出生 ...
- 进击的Python【第一章】:Python背景初探与Python基础(一)
Python背景初探 一.Python起源 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做 ...
- Python学习之旅--第二周--python基础
一.什么是pyc? 1.Python是解释性语言,那么.pyc是什么文件? 2.解释性语言和编译型语言区别: 计算机是不能够识别高级语言的,所以当我们运行一个高级别语言程序时,就需要一个&quo ...
- 利用Python中的mock库对Python代码进行模拟测试
这篇文章主要介绍了利用Python中的mock库对Python代码进行模拟测试,mock库自从Python3.3依赖成为了Python的内置库,本文也等于介绍了该库的用法,需要的朋友可以参考下 ...
- python 全栈开发,Day1(python介绍,变量,if,while)
python基础一 一,Python介绍 python的出生与应用 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为 ...
- python全栈开发,Day1(python介绍,变量,if,while)
python基础一 一,Python介绍 python的出生与应用 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为 ...
- python基础系列教程——Python的安装与测试:python的IDE工具PyDev和pycharm,anaconda
---恢复内容开始--- python基础系列教程——Python的安装与测试:python的IDE工具PyDev和pycharm,anaconda 从头开启python的开发环境搭建.安装比较简单, ...
- 《PYTHON学习手册》(《Learing Python》--Mark Lutz)书摘
1. Python是为了让脚本的质量等级再提升几个级别. 2. <learning Python>和<programming Python>反映了作者培训内容的两部分:核心语言 ...
随机推荐
- win10、win11安装子系统kali linux、图形化界面的安装
1.开启安装Linux子系统需要的扩展 Win+Q搜索功能 勾选需要的扩展,Hyper-V.Windows 虚拟机监控平台.适用于Linux的Windows子系统.虚拟机平台 反正这些有关于虚拟机的全 ...
- 痞子衡嵌入式:我为2021 TencentOS Tiny AIoT应用创新大赛做了场直播培训
TencentOS Tiny AIoT 应用创新大赛是腾讯 TencentOS 团队联合恩智浦半导体.安谋科技(Arm China)发起的线上开发者活动,主要面向中小企业嵌入式工程师.广大嵌入式开发者 ...
- 【RSocket】使用 RSocket(二)——四种通信模式实践
Source Code: https://github.com/joexu01/rsocket-demo 0. 四种通信模式 让我们来简单复习一下 RSocket 的四种通信模式: 即发即忘 - Fi ...
- 三分钟搭建一个自己的 ChatGPT (从开发到上线)
原文链接:https://icloudnative.io/posts/build-chatgpt-web-using-laf/ OpenAI 已经公布了 ChatGPT 正式版 API,背后的新模型是 ...
- SpringBoot使用OkHttp
参考文章: https://www.cnblogs.com/hongdada/p/9259965.html https://blog.csdn.net/qq_41890954/article/deta ...
- pytorch的dataset与dataloader解析
整理一下pytorch获取的流程: 创建Dataset对象 创建DataLoader对象,装载有dataset对象 循环DataLoader对象,DataLoader.__iter__返回的是Data ...
- 解读 Servlet 源码:GenericServlet,ServletConfig,ServletContext
解读 Servlet 源码:GenericServlet,ServletConfig,ServletContext 每博一文案 人活着,就得随时准备经受磨难.他已经看过一些书,知道不论是普通人还是了不 ...
- Serial port
前言 使用qt开发一款简易串口助手. 目标: 1. 实现正常串口通信. 2. 能够传输AT指令.(需要注意回车符) github仓库地址:shadow-wd/Serial-port-assis ...
- Ubuntu+uWSGI部署基于Django的API【鸿篇巨制,事无巨细】
背景 任务: 视频翻译项目需要在两个服务器上进行通信(国内&海外的阿里服务器). 因为python是主语言,选用了Django 来快速部署API. 注:Django中文文档:https://d ...
- vue路由加载页面
当vue路由切换时,有时候会出现短暂白屏,需要添加一个加载状态 参考:buildadmin 地址:https://demo.buildadmin.com/#/ 利用vue的路由导航守卫:beforeE ...