news 2026/10/17 6:38:50

WinPython 3.14.3.0 slim(64 位)发布清单解读:从 changelogs 包索引到构建工具链

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
WinPython 3.14.3.0 slim(64 位)发布清单解读:从 changelogs 包索引到构建工具链
  • 开发工具
  • 构建工具
  • CLI
  • 包管理器

【免费下载链接】winpython

A free Python-distribution for Windows platform, including prebuilt packages for Scientific Python.

项目地址:https://gitcode.com/gh_mirrors/wi/winpython
点击查看免费下载

本文基于 changelogs/WinPythonslim-64bit-3.14.3.0.md 这份 WinPython 3.14.3.0 slim 版(64 位 Windows 便携发行版)的发布清单展开:先完整解读该发行版包含的 Tools 与 531 个 Python 包的版本组合,再结合仓库源码说明这份清单是由构建工具链哪一步、用什么参数自动生成的,最后给出如何在本机用带哈希锁定的 requirements/pylock 文件精确复现同一套包环境的方法。读完后,你可以把 changelog 文件当作"发行版冻结点"使用,并理解 slim 风味与其他风味的差异来源。

一、这份清单在 WinPython 中的定位

changelogs/ 目录存放 WinPython 各历史版本的包索引(package index)。从源码看,文件命名遵循统一约定WinPython{flavor}-{arch}bit-{version}.md,即本文件表示:flavor = slim、架构 = 64 位、版本 = 3.14.3.0的构建产物清单。构建完成后该文件会被自动复制进changelogs/归档,与winpython/build_winpython.py#L312-L330中 Step 7 的行为一一对应(见第三节)。

原清单的开场白是:

The following packages are included in WinPython-64bit v3.14.3.0slim.

也就是说,下文所有版本都以 64 位 Windows 下 Python 3.14.3 解释器为运行前提;其中带 C 扩展的包均为win_amd64预编译 wheel(构建策略见 winpython_builds.toml 的默认only_binary为真),不依赖本地编译器。

二、清单内容全解读

2.1 Tools(随发行版捆绑的外部工具)

原清单的 Tools 部分完整继承如下:

名称版本说明
Pandoc3.1.9通用文档转换器
Python3.14.3Python 解释器与标准库

slim 风味的工具集只有这两项,对应的工具目录配置为bdTools\tools64_pandoc_alone(见 winpython_builds.toml#L44-L47 的[flavors.slim]段)——"pandoc_alone" 即"只带 Pandoc、不带其他独立工具",这正是 slim 相对 dot 风味(toolsdirs = "bdTools\\Tools.dot",工具更全)最直观的瘦身点。

2.2 Python packages(531 个,按主题分组)

原清单列出了 531 个 Python 包(含版本号与 PyPI 描述)。完整逐行列表见 changelogs/WinPythonslim-64bit-3.14.3.0.md 第 14 行起;下面按主题挑出各组的锚点包及其精确版本,便于按图索骥:

科学计算与数值核心

包版本包版本
numpy2.4.2scipy1.17.1
pandas2.3.3sympy1.14.0
matplotlib3.10.8numba0.64.0
xarray2026.2.0h5py3.15.1
astropy7.2.0dask2026.1.2
statsmodels0.14.6cython3.2.4

Jupyter 与交互式环境

包版本包版本
jupyterlab4.5.5notebook7.5.4
ipykernel6.31.0ipython9.11.0
jupyter-server2.17.0nbconvert7.17.0
qtconsole5.7.1ptpython3.0.31
papermill2.7.0spyder6.1.3(IDE,配 spyder-kernels 3.1.3)

数据科学与机器学习

包版本包版本
scikit-learn1.8.0scikit-image0.26.0
imbalanced-learn0.14.1mlxtend0.23.4
umap-learn0.5.11scs3.2.11
cvxpy1.8.1optuna4.7.0
polars1.38.1duckdb1.4.4
geopandas1.1.2shapely2.1.2
sqlalchemy2.0.46psycopg22.9.11

可视化

包版本包版本
plotly6.5.2bokeh3.8.2
seaborn0.13.2hvplot0.12.2
holoviews1.22.1datashader0.18.2
plotnine0.15.3altair6.0.0
folium0.20.0ipyleaflet0.20.0
pyqtgraph0.14.0mpld30.5.12

LLM / AI 应用栈(本版本清单的显著特征之一)

包版本包版本
langchain1.2.10langgraph1.0.10
openai2.26.0anthropic0.84.0
pydantic-ai-slim1.12.0mcp1.25.0(Model Context Protocol SDK)
tiktoken0.12.0huggingface-hub1.4.1
onnxruntime1.24.3keras3.13.2
tokenizers0.22.2cohere5.20.6

Web / API 与数据库

包版本包版本
fastapi0.129.0django6.0.2
flask3.1.2quart0.20.0
pydantic2.12.5uvicorn0.41.0
redis7.1.0azure-cosmos4.14.4
datasette0.65.2sqlite-utils3.39
streamlit1.55.0panel1.8.9

开发工具链(linter、测试、构建、发布)

包版本包版本
pytest9.0.2ruff0.15.1
mypy1.19.1(mypy[mypyc],配 librt 0.7.8)black26.3.0
flake87.1.1pylint4.0.4
build1.4.0hatchling1.28.0
flit3.12.0maturin1.11.5
twine6.2.0pip26.0.1
wppm17.2.20250823(WinPython 包管理器本身也随包分发)

GUI / 桌面与 Windows 专属

包版本说明
pyqt5 5.15.11 / pyqt5-qt5 5.15.2 / pyqt5-sip 12.17.1PyQt5 全套(qtawesome 1.4.1、qtpy 2.4.3 配套)
pyqtwebengine 5.15.7(+ pyqtwebengine-qt5 5.15.2)Qt WebEngine 子集
pythonqwt 0.15.0Qt 绑图控件
pywin32 311 / pywin32-ctypes 0.2.3 / pywinpty 3.0.3Windows 扩展与伪终端

其余大量条目(异步生态 aiohttp 3.13.3 / anyio 4.12.1 / httpx 0.28.1、加密与认证 cryptography 46.0.3 / argon2-cffi 25.1.0、文档工具链 sphinx 9.1.0 / docutils 0.22.4 / pandocfilters 1.5.1、音频与图像 sounddevice 0.5.3 / pillow 12.1.1 / tifffile 2025.3.30 等约 400 个包)均可在原清单第 18–548 行逐条查到精确版本。

2.3 WheelHouse packages(离线 wheel 仓库)

原清单末尾的### WheelHouse packages小节表头存在但内容为空。这不是遗漏:slim 风味只装 requirements 声明的包,不额外构建本地 WheelHouse;只有声明了wheelhousereq的风味(如 winpython_builds.toml#L55-L59 中[flavors.whl]的requirements_whl.txt)才会填充该小节。这也从侧面验证了清单是"实际安装结果"的快照,而非模板。

三、清单如何生成:构建工具链 Step 7 的源码证据

这份 md 文件不是手写维护的,而是构建流水线自动产出。调用链如下(均在本仓库可直接查看):

  1. 入口脚本:build_winpython_meta.py 读取 winpython_builds.toml,按(python, flavor)对展开构建任务(expand_builds,build_winpython_meta.py#L22-L48),支持命令行选择器如314:slim(select_builds,build_winpython_meta.py#L50-L63),最终拼出python -m winpython.build_winpython --flavor slim --requirements ... --constraints ... --only-binary ...等构建命令(run_build,build_winpython_meta.py#L77-L146)。
  2. 生成清单:winpython/build_winpython.py#L312-L330 的 Step 7 设置WINPYVER2、WINPYFLAVOR、WINPYVER环境变量后,调用wppm.Distribution().generate_package_index_markdown()渲染出WinPythonslim-64bit-3.14.3.0.md,再shutil.copyfile复制到changelogs/归档。
  3. 渲染实现:wppm/wppm.py#L116-L131 的generate_package_index_markdown()依次输出 "Tools"、"Python packages"、"WheelHouse packages" 三个小节——与本文开头看到的原清单三段式结构完全一致。
  4. 配套 History 文件:Step 7 后半段(winpython/build_winpython.py#L332-L347)调用 wppm/diff.py#L169 的compare_package_indexes(),与changelogs/中同风味的上一份索引做差集,产出..._History.md。源码注释明确说明:History 只留在构建输出旁、不发布进changelogs/;如需任意两份清单对比,可手动执行wppm -diff <a>.md <b>.md(见 wppm/diff.py#L219-L220 的用法说明)。

由此可以推断:changelogs/中同名文件按 PEP 440 版本排序(如 3.14.3.0slimb2 → slimb3 → slim 正式版),版本名里保留 release level(b0/b1/b2/b3)正是为了避免 beta 与正式版互相覆盖(winpython/build_winpython.py#L313-L316 的注释)。

四、如何复现同一套包环境

如果你不需要 WinPython 便携目录本身,而只想要"和 3.14.3.0 slim 完全一致的 wheel 集合",仓库提供了两级复现手段:

4.1 带哈希锁定的 requirements 文件

winpython/portable/cycle_2026_01/requir.64-3_14_3_0slim.txt(1060 行)逐包记录了版本与 sha256 哈希,例如:

absl-py==2.3.1 \ --hash=sha256:eeecf07f0c2a93ace0772c92e596ace6d3d3996c042b2128459aaae2a76de11d numpy==2.4.2 \ --hash=sha256:...

在 64 位 Python 3.14 环境下执行即可安装(参数含义见 README.rst#L67-L75 的同类示例):

python -m pip install --no-deps --require-hashes -r winpython/portable/cycle_2026_01/requir.64-3_14_3_0slim.txt

--no-deps加--require-hashes意味着完全信任清单自身的依赖闭包,不会临时拉取未锁定版本——这与 changelog 清单形成"一个描述结果、一个可执行复现"的闭环。

4.2 pylock 锁定文件

同周期还有 winpython/portable/cycle_2026_01/pylock.64-3_14_3_0slimb3.toml 等 pylock.toml 文件;README.rst#L33-L37 说明:在包管理器支持 pylock.toml 之前,可先用上面那种 requirements-with-hash 文件替代。注意 pylock 文件名带 b3 后缀,对应的是该周期的第 3 轮 beta 快照,与正式版 changelog 之间可能存在少量版本差,对比时可用 4.3 节的 diff 工具。

4.3 从源码重建整个 slim 发行版

若要从零构建(需要 Windows 环境,工具链要求 Python >= 3.11,wppm 本身要求 >= 3.10,见 README.rst#L38-L44):

generate_a_winpython_distropy_meta.bat winpython_builds.toml 314:slim

其中 slim 风味的关键配置(winpython_builds.toml#L44-L47):

键值含义
requirementsrequirements_slim.txt顶层包清单(见下)
source_dirspackages.win-amd64win_amd64 wheel 来源目录
toolsdirsbdTools\tools64_pandoc_alone仅捆绑 Pandoc 工具集
only_binary(默认)yes只装 wheel、不编译 sdist
create_installer(defaults)None本地构建默认不打包安装器

requirements_slim.txt 是 slim 风味的输入:文件头注明"160 entries -> 112 kept, 48 already pulled in",即 112 个顶层条目加依赖闭包;文件下半部的注释(requirements_slim.txt#L118-L179)逐条记录了哪些包是被谁"顺带拉入"的(如#black # <- spyder、#streamlit # <- streamlit-bokeh),这是理解 slim 包集合如何从 112 个顶层条目膨胀到 531 个已安装包的最佳注脚。

五、适用前提与版本限制

  • 清单是时点快照:requirements_slim.txt#L168-L179 的维护注释显示,2026-08 起 slim 已陆续移除 astropy、django、distributed、pymongo,并将 geopandas 换为 opencv、移除 pydub——但这些包都还出现在 3.14.3.0 正式清单中(astropy 7.2.0、django 6.0.2、distributed 2026.1.2、pymongo 4.15.3)。因此用当前requirements_slim.txt重新构建 slim,得到的包集合与本文清单不一致;要以 3.14.3.0 为准,请锁定cycle_2026_01的 requir/pylock 文件。
  • 平台限定:所有 wheel 为win_amd64(64 位 Windows),requirements_slim.txt中mypy[mypyc]、pydantic-ai-slim[...]==1.106.0等条目含 extras 锁版本,跨平台/跨 Python 小版本直接复用可能解析失败。
  • free-threaded 变体差异:[pythons."314".overrides.slimf](winpython_builds.toml#L79-L85)为 slimf(free-threaded)单独设bytecode = "none"、only_binary = false,因为当时 tornado 尚无匹配的 free-threaded wheel——所以 slimf 与 slim 的清单/构建策略并不相同,引用时要区分文件名中的slim与slimf。
  • 工具可用性:对比任意两个版本清单可用python -m wppm.diff --write-changelog <version2> <version1> [searchdir] [flavor] [architecture] [basedir](wppm/diff.py#L219-L252),或更简单地wppm -diff changelogs/WinPythonslim-64bit-3.14.2.x.md changelogs/WinPythonslim-64bit-3.14.3.0.md。

六、小结

changelogs/WinPythonslim-64bit-3.14.3.0.md 表面上是一张"531 个包 + 2 个工具"的表格,实际是 WinPython 构建体系对一次发布的完整冻结记录:由wppm.Distribution().generate_package_index_markdown()在 Step 7 自动渲染并归档;上游输入是requirements_slim.txt与[flavors.slim]配置,下游复现手段是cycle_2026_01目录下的哈希锁定 requirements 与 pylock 文件。对使用者,它是核对环境一致性的权威清单;对维护者,它是版本间 diff(wppm/diff.py)与 History 生成(_History.md)的数据源。

  • 开发工具
  • 构建工具
  • CLI
  • 包管理器

【免费下载链接】winpython

A free Python-distribution for Windows platform, including prebuilt packages for Scientific Python.

项目地址:https://gitcode.com/gh_mirrors/wi/winpython
点击查看免费下载

相关推荐

上一篇:Glances RAID 插件使用指南:在终端监控 Linux 软 RAID 阵列状态
下一篇:Textual 的 `text-style` 样式:在终端 TUI 中为文本设置加粗、斜体、反显与删除线

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/17 6:35:38

Claude Code 模板化配置全解:让 AI 编程产出稳定可预期

去年团队开始全员用 Claude Code 写项目&#xff0c;结果很有意思&#xff1a;同一批人、同一个模型&#xff0c;产出质量却天差地别。有人十分钟能完成一次带测试的重构&#xff0c;有人光让 AI 理解项目结构就耗掉大半上下文。后来我把那些用得顺手的配置、命令、子代理和钩子…

作者头像 李华
网站建设 2026/10/17 6:29:22

通用工具组件类 - ADC/DAC调试工具(Qt Widgets + ADC/DAC)

# 通用工具组件类 - ADC/DAC调试工具(Qt Widgets + ADC/DAC) ## 项目概述 1. **技术栈**:Qt Widgets + 串口通信(主流ADC/DAC模块多通过串口/USB转串口交互),适配**统信UOS/银河麒麟(x86/ARM)**信创系统,用于模拟量采集、模拟输出类硬件调试。 2. **业务场景**:对接外…

作者头像 李华