2026
10-07
10-07
Python装包慢到怀疑人生?这个Rust重写的神器直接快10倍
一个用 Rust 重写的 Python 包管理器,把 pip、virtualenv、pyenv、pip-tools、pipx 五件套合并成一个二进制,依赖解析快到离谱。你是不是也遇到过这种情况:新拉一个 Python 项目,敲下 pip install -r requirements.txt,然后眼睁睁看着转圈圈转了 90 秒,三杯咖啡都喝完了,依赖还没装完。更离谱的是,等它终于装完,你换台电脑再装一遍,又得重新转 90 秒。同一个项目,同样 23 个包,pip 每次 6.6 秒起跳,大项目直接奔着一分半去了。
继续阅读 >
我点开截图,二十多行代码,fig、ax、plt、subplots 堆在一起,报错信息是 AttributeError: 'NoneType' object has no attribute 'set_xlabel'。她就是想画个月度趋势图,结果被 matplotlib 的面向对象接口搞懵了。
Python 程序员跟并发缠斗了快二十年。从 threading 到 asyncio,从 multiprocessing 到 concurrent.futures,每一代方案都在解决上一代的问题,同时又引入新的麻烦。
Python 的报错信息也提供了“路口”和“原因”,只要学会读取,就能顺利“改道”。
Python 代码得先转成 TypeScript 对象,再手动调用 to_js 接口,像翻译官一样在两种语言之间来回传话。写错一个类型转换,线上直接崩。
写Python代码时间长了,有些习惯会慢慢变。一开始只求能跑,后来会想怎么少写几行,怎么让下一个人看懂。下面这些技巧都不是教科书里的标准答案,是踩过坑以后留下的记号。列表推导式用多了会腻。换个思路,用生成器表达式处理大文件。读一个几百万行的日志,sum(1 for line in f if 'error' in line)比先读进列表再循环省内存。内存不是无限大的,尤其跑在容器里的时候。
这篇笔记从 Jupyter 环境开始,把 requests 原生调用、OpenAI SDK、.env 密钥管理、stream 流式输出一次讲清。
很多人写Python时会写很多重复代码。他们习惯把功能堆在一个文件里。时间长了,改一处就要检查十处。这不是Python的问题,是习惯的问题。
写了个 Python 工具想发给同事用,对方说"我没装 Python"。发 .py 文件过去等于让对方走一遍装环境、装依赖的流程,大概率用不起来。用 PyInstaller 把脚本打成 .exe,对方不用装任何东西,双击就能跑。
写Python代码的人经常遇到一个情况。同一个功能有好几种写法。选哪种写法,短时间看不出差别。项目变大以后,差别就出来了。
与 C、C++、Rust 以及其他编译型语言相比,CPython 在 CPU 密集型工作负载下确实可能慢很多。Global Interpreter Lock(GIL)、动态类型、对象分配以及解释器开销,长期以来限制了纯 Python 代码的执行速度。
很多人写Python会不自觉地绕远路。代码能跑,功能也对,就是看着别扭。这种别扭不是审美问题,是习惯问题。改掉几个习惯,代码立刻短一截,读起来也顺。
中秋想给家人、朋友、客户发张贺卡,去网上找图库模板,要么收费要么带水印,发出去"撞款"概率高。自己用 Python 画一张也不复杂:深蓝夜空 + 一轮圆月 + 祝福文字,名字自动填进去,每张都不一样。
Python 3.15即将发布。在这次的候选版本3.15.0rc2更新中,有趣的变化不再体现在阅读更新日志时候了。
Dash 框架入门:用纯 Python 构建交互式数据应用Dash 是一个由 Plotly 公司开发的开源框架,让你只用 Python 就能构建具有丰富交互性的 Web 应用。你不需要写任何 HTML、CSS 或 JavaScript,所有界面和逻辑都可以通过 Python 对象与回调函数完成。它非常适用于数据分析、仪表盘、机器学习演示等场景。
在日常办公场景中,合同审批、技术文档迭代、公文修订等工作中,经常需要对比两个 Word 文档版本之间的差异。虽然 Word 本身提供了“比较”功能,但当需要批量处理或集成到自动化流程中时,通过编程方式实现文档对比就变得非常必要。本文将介绍如何使用 Python 和 Free Spire.Doc for Python 库来实现 Word 文档的自动对比。