- 开发工具
- 构建工具
- CLI
- 包管理器
【免费下载链接】winpython
A free Python-distribution for Windows platform, including prebuilt packages for Scientific Python.
本文基于仓库历史文档 WinPythonZero-64bit-3.7.0.2_History.md 展开,系统梳理 WinPython 64 位Zero(极简)变体在 3.7.0.2 版本中的全部变更:4 个新增包、9 个升级包,并逐一解析其版本差异、在发行版中的角色与升级价值。读者读完后,将能准确理解 WinPythonZero 的包集合构成、此次升级带来的实际能力变化,以及 WinPython 多 flavor 构建体系中 Zero 变体的定位。
一、版本背景:从 3.7.0.1Zero 到 3.7.0.2Zero
WinPythonZero-64bit 3.7.0.2 是基于 CPython 3.7.0 的 Windows 64 位便携式 Python 发行版,其变更日志标题为 "History of changes for WinPython-64bit 3.7.0.2Zero",声明"以下变更自版本 3.7.0.1Zero 以来作出"(The following changes were made to WinPython-64bit distribution since version 3.7.0.1.)。
与同时期的完整版 WinPython-64bit 3.7.0.2 历史(新增 TensorFlow 1.9.0、geopandas 0.4.0、spyder 3.3.1 等大量科学计算包)相比,Zero 变体刻意保持极简:从同版本完整包清单 WinPythonZero-64bit-3.7.0.2.md 可以看到,它只捆绑 Python 解释器加约 20 个基础包,没有任何独立 Tools(如 Nodejs)组件。这种"零冗余"定位适合需要纯净 Python 环境、按需自行安装依赖的用户。
二、新增包(4 个):补齐编辑、压缩、互操作与打包能力
本版本为 Zero 集合新增了以下 4 个包:
| 包名 | 版本 | 官方描述 | 定位 |
|---|---|---|---|
| idlex | 1.18 | IDLE Extensions for Python | IDLE 编辑器扩展 |
| python_snappy | 0.5.3 | Python library for the snappy compression library from Google | Google Snappy 压缩库绑定 |
| pythonnet | 2.4.0.dev0 | .Net and Mono integration for Python | .NET / Mono 互操作 |
| wheel | 0.31.1 | A built-package format for Python | 构建包格式标准工具 |
2.1 idlex:为内置 IDLE 补充扩展能力
idlex 1.18 是 Python 标准库自带 IDLE 编辑器的扩展集,为开发者在 Windows 上使用内置 IDE 提供更丰富的编辑体验。它进入 Zero 集合意味着即使是极简发行版,也内置了可扩展的交互式编辑工具,降低上手门槛。
2.2 python_snappy:引入 Google Snappy 高速压缩
python_snappy 0.5.3 提供对 Google Snappy 压缩库的 Python 绑定。Snappy 以极高的压缩/解压速度著称(牺牲一定压缩率换取吞吐),在数据管道、日志处理等场景中是 Parquet、Arrow 生态的常见依赖。该包的加入为 Zero 集合补齐了高性能压缩能力。
2.3 pythonnet:打通 .NET / Mono 互操作
pythonnet 2.4.0.dev0 是 Python 与 .NET / Mono 运行时互操作的官方方案,允许 Python 代码调用 .NET 程序集、在 .NET 环境中嵌入 Python。对于 Windows 平台开发者,这是连接 Python 与既有 .NET 组件的重要桥梁——同期完整版还随附了 clrmagic(IPython 中调用 .NET 语言的 cell magic),可见 WinPython 团队对 .NET 互操作场景的重视。
2.4 wheel:正式纳入构建包格式支持
wheel 0.31.1 的加入与 pip 升级到 18.0 形成配套——wheel 是 Python 预编译包的标准格式(A built-package format for Python),其随发行版内置,保证用户在无网络或受限环境下也能正常安装基于 wheel 的第三方包。注意:本版本仍属旧版构建体系,而在当前仓库的现代构建配置中,wheel 已作为常规依赖出现在 requirements_slim.txt 里,可视为该能力沿革的延续。
三、升级包(9 个):基础设施、任务调度与开发工具全面刷新
本版本共升级 9 个包,可从三个维度理解升级意图。
3.1 包管理基础设施:pip 与 setuptools 的大版本跳跃
| 包名 | 旧版本 | 新版本 |
|---|---|---|
| pip | 10.0.1 | 18.0 |
| setuptools | 39.2.0 | 40.2.0 |
这是本次升级中最重要的一组变更:
- pip 10.0.1 → 18.0:跨 8 个 minor 版本的大幅升级,带来更完善的依赖解析(
--require-hashes、约束文件支持等)与性能改进。升级前需要留意,pip 18 与较旧 setuptools 的组合可能触发警告,本版本同步升级 setuptools 正是为了消除这类兼容性问题。 - setuptools 39.2.0 → 40.2.0:进入 40.x 系列,在构建后端与元数据处理上有显著调整,为后续 pip 生态演进铺路。
从构建体系看,pip 与 setuptools 属于"强制项":仓库根目录的 mandatory_requirements.txt 明确列出pip、setuptools与wppm三个必备组件,说明无论哪个 flavor,包管理基础设施都必须是完整可用的,因此它们被列入升级清单毫不意外。
3.2 并行任务调度:cloudpickle、dask、joblib 联动升级
| 包名 | 旧版本 | 新版本 | 用途 |
|---|---|---|---|
| cloudpickle | 0.5.3 | 0.5.5 | 扩展 pickling 支持,可序列化闭包、lambda 等 |
| dask | 0.18.1 | 0.18.2 | 最小化任务调度抽象,并行/分布式计算 |
| joblib | 0.12.0 | 0.12.2 | 轻量级管道:用 Python 函数串起流水线任务 |
三个包在功能上环环相扣:dask 的分布式执行依赖 cloudpickle 对局部函数与闭包的序列化能力,joblib 则常与 dask 后端结合使用。同步小幅升级(多为 bug 修复与稳定性改进)体现了发行版维护者"保持依赖链内部版本协调"的一贯策略——这在并行计算场景中尤其重要,避免序列化器与调度器版本错位导致隐性故障。
3.3 开发与数据处理工具:parso、pyodbc、qtpy
| 包名 | 旧版本 | 新版本 | 用途 |
|---|---|---|---|
| parso | 0.3.0 | 0.3.1 | Python 解析器(jedi 补全功能的内核依赖) |
| pyodbc | 4.0.23 | 4.0.24 | ODBC 数据库访问 DB API 模块 |
| qtpy | 1.4.2 | 1.5.0 | Qt 绑定(PyQt5/PyQt4/PySide)抽象层 |
- parso 0.3.1:作为 jedi(Zero 集合内置的自动补全引擎)的核心解析库,其升级直接改善补全质量与解析稳定性。
- pyodbc 4.0.24:Windows 上连接 SQL Server 等 ODBC 数据源的标配驱动,小版本升级带来驱动兼容性修复。
- qtpy 1.5.0:提供统一的 Qt 绑定抽象层,方便同一套代码在不同 Qt 绑定间切换;即便 Zero 变体不含 Qt 组件,保留该抽象层也为用户日后自装 PyQt5/PySide 提供了兼容基础。
3.4 WinPython 自研工具链同步更新
| 包名 | 旧版本 | 新版本 | 用途 |
|---|---|---|---|
| winpython | 1.10.20180624 | 1.10.20180827 | WinPython 发行版工具,含 WPPM 包管理器 |
winpython 工具包(含 WPPM——WinPython Package Manager)从 1.10.20180624 升级至 1.10.20180827。WPPM 的作用在 README.rst 中有明确说明:它是"浏览内置包、从内置 Wheelhouse 安装包、注册 WinPython"的补充工具,同时 pip 仍是增删包的推荐方式。该工具与发行版版本号绑定(1.10 系列对应 Python 3.7 时代),随发行版一并升级可确保包管理与新发行版结构一致。
四、从构建体系理解 Zero 变体的定位
4.1 flavor 机制:同一 Python、多种配方
当前仓库的构建配置 winpython_builds.toml 揭示了 WinPython 的多 flavor 构建模型:
# A build is a (python, flavor) pair. Everything else is derived: # basedir = {root_dir_for_builds}\bd{python} # requirements = {basedir}\{flavor requirements} # source_dirs = {basedir}\{flavor source_dirs}其中每个 flavor 通过自己的 requirements 文件定义包集合。例如[flavors.slim]引用 requirements_slim.txt(160 个条目精简后保留 112 个),而dot变体则引用 dot_requirements.txt。历史时期的 Zero 变体与此同源——它没有独立 requirements 文件,而是由构建脚本直接指定极小的包清单,对应本版本 WinPythonZero-64bit-3.7.0.2.md 中呈现的约 20 个包的规模。
4.2 版本对比:Zero 与完整版、Slim 的差异
| 维度 | WinPythonZero-64bit 3.7.0.2 | WinPython-64bit 3.7.0.2(完整版) |
|---|---|---|
| Tools 组件 | 无 | Nodejs v8.11.4 等 |
| 新增包 | 4 个(idlex / python_snappy / pythonnet / wheel) | 26 个(含 TensorFlow、geopandas、shapely 等) |
| 升级包 | 9 个 | 60+ 个 |
| 移除包 | 无 | pymc3 / theano / torch / torchvision / vega3 |
对比可见,Zero 变体在 3.7.0.2 中仅做了"补基础"式的增量更新,而完整版同期进行了一次大规模科学计算栈刷新(移除 Theano、Torch,引入 TensorFlow 1.9 与地理信息栈)。这种差异正体现了 WinPython 面向不同受众的发行策略:Zero 面向"要一个干净的 Python",完整版面向"开箱即用的科学计算"。
五、升级验证与使用建议
5.1 如何核对当前包版本
在已安装的 WinPythonZero-64bit 3.7.0.2 环境中,可用 pip 冻结清单核对版本:
python -m pip freeze重点核对本文涉及的升级项:pip==18.0、setuptools==40.2.0、dask==0.18.2、joblib==0.12.2、cloudpickle==0.5.5、qtpy==1.5.0、pyodbc==4.0.24、parso==0.3.1。
5.2 升级后的注意点
- pip 18.0 行为变化:新版 pip 对依赖解析更严格,若环境中存在过旧依赖,安装新包时可能报告
ResolutionImpossible类错误;由于本版本已同步升级 setuptools 至 40.2.0,绝大多数场景不受影响。 - pythonnet 为开发版:2.4.0.dev0 属于预发布版本(dev0 后缀),面向提前体验 .NET 互操作的用户,生产使用建议关注后续稳定版。
- 继续安装缺失包:Zero 集合不含科学计算栈,可按需通过
python -m pip install <package>安装;如需预编译包,优先使用 WinPython 自带的 Wheelhouse(由 WPPM 提供入口)。
5.3 参考同系列历史文档
若需回溯 Zero 变体的完整演进脉络,可对照阅读同目录下的系列文档:3.7.0.1 变更历史(新增 qtpy 1.4.2,升级 pip 10.0.1 等)、3.7.0.1 完整包清单 以及最初的 3.7.0.0 包清单,可清晰看到 Zero 变体从 3.7.0.0 b4 起步、逐版本补齐基础能力的轨迹。
小结
WinPythonZero-64bit 3.7.0.2 是一次"稳中求进"的维护性发布:通过引入 idlex、python_snappy、pythonnet、wheel 四个新组件补齐编辑器、压缩、.NET 互操作与打包能力,并通过 pip 18.0 / setuptools 40.2.0 的大版本升级刷新包管理基础设施,同时保持 dask / joblib / cloudpickle 等任务调度依赖的版本协调。对于追求纯净、可控 Python 环境的 Windows 开发者,这是一份值得升级的极简发行版;其版本演进史也为我们理解 WinPython 多 flavor 构建体系提供了一个清晰的横截面。
- 开发工具
- 构建工具
- CLI
- 包管理器
【免费下载链接】winpython
A free Python-distribution for Windows platform, including prebuilt packages for Scientific Python.
相关推荐
WinPythonZero 64bit 3.6.2.0 变更解析:极简 Python 发行版的包集演进与构建机制
WinPythonZero 64bit 3.6.2.0 变更解析:极简 Python 发行版的包集演进与构建机制 WinPythonZero 是 WinPyth
开发工具构建工具CLI包管理器WinPythonZero 3.5.4.2 32-bit 发布说明:Python 3.5 精简发行版包清单与升级变更解析
WinPythonZero 3.5.4.2 32 bit 发布说明:Python 3.5 精简发行版包清单与升级变更解析 本指南以 changelogs/Win
开发工具构建工具CLI包管理器WinPython 2.7.12.4Zero 发布解析:Python 2.7 极简发行版的包清单与升级脉络
WinPython 2.7.12.4Zero 发布解析:Python 2.7 极简发行版的包清单与升级脉络 本篇以 changelogs/WinPythonZe
开发工具构建工具CLI包管理器
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考