You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何macOS下Homebrew版Python生成的小数据shelf文件体积达16MB?

Python shelve生成超大文件问题(Homebrew版Python在macOS High Sierra上的异常)

嘿,这个问题我太有印象了!你在macOS High Sierra上用Homebrew安装的Python(不管是3.6.4还是2.7.14),仅仅用shelve存两个带短字符串的小元组,结果生成的addresses文件居然飙到16MB,但换个环境就完全正常——比如Linux主机、macOS自带的Python 2.7.10,或者用官方安装包装的Python 3.6.4,生成的文件只有几KB,和社区里其他人反馈的一样。

异常场景的复现步骤

先清掉旧文件,打开Homebrew版Python交互环境:

~/tmp> rm addresses
~/tmp> python3

执行shelve操作:

Python 3.6.4 (default, Jan 6 2018, 18:43:09) [GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.39.2)] on darwin
>>> import shelve
>>> book = shelve.open("addresses")
>>> book['flintstone'] = ('fred', '555-1234', '1233 Bedrock Place')
>>> book['rubble'] = ('barney', '555-4321', '1235 Bedrock Place')
>>> book.close()

查看文件大小,会发现异常大:

~/tmp> ll
total 32768
-rw-r--r-- 1 moritz staff 16M Jan 24 13:05 addresses

这是Homebrew打包的Python在macOS High Sierra上的特定兼容性问题,其他环境下shelve模块的文件生成逻辑都是正常的,符合预期。

内容的提问来源于stack exchange,提问作者anothernode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:18:01