- 开发工具
- 构建工具
- CLI
- 包管理器
【免费下载链接】winpython
A free Python-distribution for Windows platform, including prebuilt packages for Scientific Python.
导读
本文围绕 changelogs/WinPythonZero-32bit-3.7.0.2_History.md 这份官方变更记录,逐条拆解 WinPython Zero 32 位发行版从 3.7.0.1 升级到 3.7.0.2 时发生的全部包变化:4 个新增包(idlex、python_snappy、pythonnet、wheel)、9 个升级包(cloudpickle、dask、joblib、parso、pip、pyodbc、qtpy、setuptools、winpython)。读完本文,你将理解这些包在 Python 3.7 科学计算生态中的角色与典型用途,掌握通过wppm -diff复现这份变更报告的方法,并能结合仓库源码看懂 WinPython 包索引文档与变更记录是如何自动生成的。
一、发行版背景:WinPython Zero 32 位 3.7.0.2
WinPython 是面向 Windows 平台的便携式(portable)Python 发行版,附带面向科学计算的预构建包。Zero 是其中一个精简 flavor,本仓库对应版本为 Python 3.7.0(32 位),配套的完整包清单见 changelogs/WinPythonZero-32bit-3.7.0.2.md。
该版本的包索引显示,发行版以 Python 3.7.0 为核心,内置 pip 18.0、setuptools 40.2.0、wheel 0.31.1,并带上一批编辑器/REPL 与并行计算基础设施(jedi、ptpython、dask、joblib 等)。同时,同期的非 Zero 版本(changelogs/WinPython-32bit-3.7.0.2.md)还包含 geopandas、shapely、fiona 等地理空间包,可作为对照:Zero 版本刻意保持了更小的包集合,聚焦基础科学计算工具链。
本变更记录(_History.md后缀)只列出“相对上一版本的差异”,而对应的索引文档(不带_History后缀)列出“当前版本包含的全部包”。这两类文档在仓库中成对存在,是 WinPython 版本管理的标准产出物。
二、新增包(New packages):4 个
从 3.7.0.1 到 3.7.0.2,发行版新增了以下 4 个包:
| 包名 | 版本 | 定位 |
|---|---|---|
| idlex | 1.18 | IDLE Extensions for Python(IDLE 扩展,提供语法高亮、行号等增强) |
| python_snappy | 0.5.3 | Google Snappy 压缩库的 Python 绑定 |
| pythonnet | 2.4.0.dev0 | Python 与 .NET / Mono 的互操作集成 |
| wheel | 0.31.1 | Python 内置包格式(.whl)的构建与安装工具 |
四个新增包分别覆盖了不同的使用场景:
- idlex:面向纯 Python 标准库 IDLE 的扩展集合。虽然 Zero 版没有捆绑 Spyder 这类重型 IDE,但提供 idlex 可以让开发者在随发行版自带的 IDLE 中补齐行号显示、代码折叠等增强能力,成本极低。
- python_snappy:Snappy 是 Google 开源的快速压缩库,与 zlib 等侧重压缩率的算法不同,它以压缩/解压速度优先,常用于大数据场景(如 Hadoop、Parquet 生态)的快速数据落盘。Python 绑定让上层数据管道可以透明调用。
- pythonnet:允许在 Python 中加载和调用 .NET 程序集,是 Windows 平台上“Python 作为脚本语言驱动 .NET 库”的经典桥梁。注意此版本号为 2.4.0.dev0,属于开发版快照。
- wheel:现代 Python 包分发的基础设施。pip 18.0 与 wheel 0.31.1 的组合意味着发行版对
pip install <x.whl>本地轮子安装与构建流程提供了完整支持。
三、升级包(Upgraded packages):9 个
| 包名 | 版本变化 | 定位 |
|---|---|---|
| cloudpickle | 0.5.3 → 0.5.5 | 对 Python 对象的扩展 pickling 支持 |
| dask | 0.18.1 → 0.18.2 | 最小化任务调度抽象(并行/分布式计算) |
| joblib | 0.12.0 → 0.12.2 | 轻量级流水线:把 Python 函数当作流水线作业 |
| parso | 0.3.0 → 0.3.1 | 一个 Python 解析器 |
| pip | 10.0.1 → 18.0 | Python 包安装与管理工具 |
| pyodbc | 4.0.23 → 4.0.24 | 面向 ODBC 的 DB API 模块 |
| qtpy | 1.4.2 → 1.5.0 | 在 PyQt5 / PyQt4 / PySide 之上的 Qt 绑定抽象层 |
| setuptools | 39.2.0 → 40.2.0 | 下载、构建、安装、升级、卸载 Python 包 |
| winpython | 1.10.20180624 → 1.10.20180827 | WinPython 发行工具,包含 WPPM(包管理器) |
这组升级体现了两个明显的维护方向:
- 包管理栈整体刷新:pip 从 10.0.1 一举跳到 18.0,setuptools 升到 40.2.0,这是 Python 3.7 时代依赖解析与构建基础设施的一次集中更新,也带动 wheel 打包流程的兼容性同步升级。
- 科学计算与并行基础设施小步快跑:dask(并行调度)与 cloudpickle(跨进程序列化闭包/函数)是配套升级的典型组合——dask 的分布式调度需要 cloudpickle 把 Python 函数序列化后分发给 worker,两者版本需要保持兼容节奏;joblib 的流水线缓存同样依赖对象持久化能力。Qt 抽象层 qtpy 升级到 1.5.0,则为上层 GUI 工具提供了对多个 Qt 绑定的统一访问。
winpython包自身也从 1.10.20180624 升级到 1.10.20180827,即本次变更记录中的 WPPM(WinPython Package Manager)工具链版本。
四、读懂这两类文档:索引文档与变更记录的关系
要正确解读本变更记录,需要先理解仓库中成对文档的约定:
- 索引文档(如
WinPythonZero-32bit-3.7.0.2.md):以 Markdown 表格形式列出当前发行版包含的全部 Tools、Python packages、WheelHouse packages,是“快照”。 - 变更记录(
_History.md,即本文主体文档):只列出相对上一版本的差异,按New packages、Upgraded packages、Removed packages分组,是“增量”。
这一结构在仓库中由工具链自动产出。wppm/wppm.py 中的get_package_index_data/generate_package_index_markdown负责采集发行版身份信息(名称、版本、Python 版本、位数、release level)与已装包列表,并以Name | Version | Description表格渲染 Markdown 索引;而差异部分由 wppm/diff.py 的compare_packages生成:将新旧两份索引按归一化包名(-/_统一为小写)比对,分别产出 added(New)、upgraded(版本不同的 Upgraded)、removed(Removed)三组条目——这正是本变更记录分组的实现来源。
五、用 WPPM 复现与验证变更记录
仓库中的 WPPM 提供了-diff子命令,可直接对比两份包索引文档并复现上述 New / Upgraded / Removed 分组:
# 对比两个发行版索引(或索引文档),输出 New/Upgraded/Removed 差异 wppm -diff changelogs/WinPythonZero-32bit-3.7.0.1.md changelogs/WinPythonZero-32bit-3.7.0.2.mdWPPM 其余常用命令还包括(见 wppm/wppm.py 的参数定义):
wppm -ls [表达式]:列出已安装包(支持按名称模糊过滤,如wppm -ls pand);wppm -lsa pandas -l1:列出包详情并展示依赖层级;wppm -p pandas[.]:显示指定包及其依赖树,[.]表示全部;wppm -r pytest![test]:显示反向依赖(谁依赖了它);wppm -md:以 Markdown 摘要输出当前安装情况(即索引文档生成的本地版本)。
索引文档的解析逻辑在 wppm/diff.py 的PackageIndex._parse_index:它识别### Tools、### Python packages、### WheelHouse packages三类区块,再用正则解析每一行name | version | description格式的包条目。仓库测试 tests/test_changelog_files.py 同时验证了changelogs/目录的产出约定:索引文档与_History.md配套、哈希信息不写入 changelogs 目录等,可作为理解文档规范的参考。
六、如何获取与使用 WinPython Zero 3.7.0.2
WinPython 以便携目录形式分发,无需安装即可运行。本仓库 README.rst 说明了两种获得等价环境的方式:
- 直接下载发行版:使用 zip 或带自解压的发行包,解压后运行
python.exe即可;所有包已预装,无需联网安装。 - 仅安装 wheel 集:如果只想复刻包集合,可使用带哈希校验的 requirements 文件安装:
python -m pip install --no-deps --require-hashes <requirements.txt>需要说明的是,WinPython 3.7.0.2 对应的 Python 3.7 已属较老版本,官方推荐在新项目中使用当前稳定发行版;本文档主要用于理解历史版本的工具链与包结构。当前仓库的构建体系(如 cycles/2026_03.toml、winpython_builds.toml)已演进到 Python 3.13/3.14 及 dot/slim/dotf/slimf 等多 flavor 矩阵,并通过WINPYVER2、WINPYFLAVOR环境变量驱动构建(见 winpython/make.py),但从“索引 + 变更记录”双文档模式看,其版本管理思想与 3.7.0.2 时代一脉相承。
七、小结
WinPython Zero 32 位 3.7.0.2 是一次典型的“基础设施刷新 + 新能力引入”版本:新增 pythonnet 与 python_snappy 扩展了 .NET 互操作与高速压缩能力,idlex 补齐了轻量编辑体验,wheel 强化了现代打包支持;升级侧则以 pip/setuptools 的集中更新为主线,兼顾 dask/cloudpickle/joblib 并行计算栈的同步演进。通过本文,你不仅了解了每个包的实际用途,还掌握了利用wppm -diff复现变更报告、理解索引与历史文档生成机制的方法,可用于审计或复刻任意历史 WinPython 发行版。
- 开发工具
- 构建工具
- CLI
- 包管理器
【免费下载链接】winpython
A free Python-distribution for Windows platform, including prebuilt packages for Scientific Python.
相关推荐
WinPython 3.6.6.1 Zero(32 位)变更解析:Python 3.6.6 与核心工具链升级全览
WinPython 3.6.6.1 Zero(32 位)变更解析:Python 3.6.6 与核心工具链升级全览 导读:本文以仓库 changelogs/Win
开发工具构建工具CLI包管理器WinPython Zero 3.7.0.2(32 位)精简发行版解析:包清单、变更历史与 WPPM 维护指南
WinPython Zero 3.7.0.2(32 位)精简发行版解析:包清单、变更历史与 WPPM 维护指南 本文以仓库中的发布清单文档 changelogs
开发工具构建工具CLI包管理器WinPython Zero 3.7.0.1(32 位)精简发行版变更解读:qtpy 引入与 9 个包升级全解析
WinPython Zero 3.7.0.1(32 位)精简发行版变更解读:qtpy 引入与 9 个包升级全解析 WinPython 是一套面向 Windows
开发工具构建工具CLI包管理器
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考