最新 最热

Python 的 GIL 到底是什么?先搞懂它再动手写多线程

Python 的 GIL 是进程级全局锁,保证同一时刻只有一个线程执行 Python 字节码。CPU 密集型多线程无法真并行只在单核交替,I/O 密集型能靠等待释放锁获得并发;要并行算 CPU 任务用多进程,Python 3.13 起有实验性无 GIL 构建但生产需谨慎。

2026-11-01
395

Python 的二分查找为什么总写错边界?先看清这 3 个坑

二分查找总写错边界,根因在三个地方:循环条件要和对区间语义配对,排除中点必须加一减一否则死循环,找左右边界时命中不能直接返回而要继续收缩。把答案始终在闭区间内的循环不变量钉死,就能避开这些 off-by-one。

2026-11-01
277

requests 设置了 timeout 却还在傻等:超时到底卡在哪一步

明明给 requests 传了 timeout,脚本却既不报错也不退出,多数情况不是参数失效,而是超时只约束连接等待与数据间隔。本文讲清它的覆盖边界,用本地慢速服务端做对照复现,并给出三种兜住总耗时的做法,帮你判断该换客户端还是加会话重试。

2026-10-29
544

Python 虚拟环境 venv 怎么建:隔离依赖的最小步骤

多个项目依赖互相污染、旧项目突然跑不起来?用 venv 给每个项目建独立环境即可隔离。本文用三步讲清 python -m venv 建环境、激活与 pip freeze 固化依赖的最小做法,并给出激活脚本选错终端、建环境时 Python 版本不对、忘了激活就跑测试这几个高频坑的修复。照着做,依赖隔离得干干净净。

2026-10-28
359

Python 代码怎么在网页里跑起来:三条路径的取舍

网页里跑 Python 到底在浏览器还是后端?本文对比 Pyodide、PyScript 与 Flask、FastAPI 三条路径:前者把 Python 编译进浏览器、不碰服务器,适合演示与轻量计算;后者在服务器端执行、能碰文件与数据库。并点出 CORS、超时与“直接 eval 用户代码”的安全红线,帮你按是否需要服务器资源快速选型。

2026-10-28
360

Python 字典按值排序后键没了:sorted 返回列表这件事

sorted 字典后键“没了”、再取值报错,是因为 sorted 永远返回列表而非字典。本文讲清它排序的是键值元组故拿到 [(k,v),...],并给出 dict() 与字典推导式两种把结果转回字典的写法,附“值类型不一致抛 TypeError”等坑与二级排序技巧。照着写,按值排序后照样能稳稳按键取值。

2026-10-28
265

中文与 Unicode 互转怎么做:编码转换的 3 种实用方式

接口里的一串转义、文件里的问号、URL 上的百分号,本质上都是编码转换没对齐。本文先分清字符集、UTF-8 字节与 Base64,再给出在线工具、语言内置函数、命令行转码三种做法的适用边界,附乱码的三类成因与排查顺序。

2026-10-25
636

DRF 输出的接口返回域名不对怎么办?按现象定位再修

Django REST framework 返回的接口返回域名不对,多半是反向代理后面框架拿到的主机头不是真实访问域名。本文按部署后不对、异步任务生成、库存绝对地址三类现象给出定位顺序与修法,并附验证清单。

2026-10-24
357

Python 代码跑得慢怎么优化:先定位瓶颈再改这 3 处

Python 代码跑得慢要先测量再改:用内置分析器找出累计耗时最高的函数,再针对循环里的字符串拼接、重复成员判断、可外提的重复计算这三处动手。本文给出可复制的分析器调用、timeit 微基准与三处改写示例,附改了没变化、基准不符等失败分支。

2026-10-23
648

whl 包在容器里安装失败避坑:这 3 个错误最常见和修复办法

容器里装 whl 包失败,八成是平台标签不匹配而非网络问题。本文按复现报错、定位根因、逐步修复、回归验证四步,讲清 cp 版本不符、Alpine 的 musl 与 manylinux 不兼容、缺少构建依赖三个高频坑,并给出可照抄的探测命令与多阶段构建写法。

2026-10-20
908