- 开发工具
- 构建工具
- CLI
- 包管理器
【免费下载链接】winpython
A free Python-distribution for Windows platform, including prebuilt packages for Scientific Python.
本文基于 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 部分完整继承如下:
| 名称 | 版本 | 说明 |
|---|---|---|
| Pandoc | 3.1.9 | 通用文档转换器 |
| Python | 3.14.3 | Python 解释器与标准库 |
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 行起;下面按主题挑出各组的锚点包及其精确版本,便于按图索骥:
科学计算与数值核心
| 包 | 版本 | 包 | 版本 |
|---|---|---|---|
| numpy | 2.4.2 | scipy | 1.17.1 |
| pandas | 2.3.3 | sympy | 1.14.0 |
| matplotlib | 3.10.8 | numba | 0.64.0 |
| xarray | 2026.2.0 | h5py | 3.15.1 |
| astropy | 7.2.0 | dask | 2026.1.2 |
| statsmodels | 0.14.6 | cython | 3.2.4 |
Jupyter 与交互式环境
| 包 | 版本 | 包 | 版本 |
|---|---|---|---|
| jupyterlab | 4.5.5 | notebook | 7.5.4 |
| ipykernel | 6.31.0 | ipython | 9.11.0 |
| jupyter-server | 2.17.0 | nbconvert | 7.17.0 |
| qtconsole | 5.7.1 | ptpython | 3.0.31 |
| papermill | 2.7.0 | spyder | 6.1.3(IDE,配 spyder-kernels 3.1.3) |
数据科学与机器学习
| 包 | 版本 | 包 | 版本 |
|---|---|---|---|
| scikit-learn | 1.8.0 | scikit-image | 0.26.0 |
| imbalanced-learn | 0.14.1 | mlxtend | 0.23.4 |
| umap-learn | 0.5.11 | scs | 3.2.11 |
| cvxpy | 1.8.1 | optuna | 4.7.0 |
| polars | 1.38.1 | duckdb | 1.4.4 |
| geopandas | 1.1.2 | shapely | 2.1.2 |
| sqlalchemy | 2.0.46 | psycopg2 | 2.9.11 |
可视化
| 包 | 版本 | 包 | 版本 |
|---|---|---|---|
| plotly | 6.5.2 | bokeh | 3.8.2 |
| seaborn | 0.13.2 | hvplot | 0.12.2 |
| holoviews | 1.22.1 | datashader | 0.18.2 |
| plotnine | 0.15.3 | altair | 6.0.0 |
| folium | 0.20.0 | ipyleaflet | 0.20.0 |
| pyqtgraph | 0.14.0 | mpld3 | 0.5.12 |
LLM / AI 应用栈(本版本清单的显著特征之一)
| 包 | 版本 | 包 | 版本 |
|---|---|---|---|
| langchain | 1.2.10 | langgraph | 1.0.10 |
| openai | 2.26.0 | anthropic | 0.84.0 |
| pydantic-ai-slim | 1.12.0 | mcp | 1.25.0(Model Context Protocol SDK) |
| tiktoken | 0.12.0 | huggingface-hub | 1.4.1 |
| onnxruntime | 1.24.3 | keras | 3.13.2 |
| tokenizers | 0.22.2 | cohere | 5.20.6 |
Web / API 与数据库
| 包 | 版本 | 包 | 版本 |
|---|---|---|---|
| fastapi | 0.129.0 | django | 6.0.2 |
| flask | 3.1.2 | quart | 0.20.0 |
| pydantic | 2.12.5 | uvicorn | 0.41.0 |
| redis | 7.1.0 | azure-cosmos | 4.14.4 |
| datasette | 0.65.2 | sqlite-utils | 3.39 |
| streamlit | 1.55.0 | panel | 1.8.9 |
开发工具链(linter、测试、构建、发布)
| 包 | 版本 | 包 | 版本 |
|---|---|---|---|
| pytest | 9.0.2 | ruff | 0.15.1 |
| mypy | 1.19.1(mypy[mypyc],配 librt 0.7.8) | black | 26.3.0 |
| flake8 | 7.1.1 | pylint | 4.0.4 |
| build | 1.4.0 | hatchling | 1.28.0 |
| flit | 3.12.0 | maturin | 1.11.5 |
| twine | 6.2.0 | pip | 26.0.1 |
| wppm | 17.2.20250823(WinPython 包管理器本身也随包分发) |
GUI / 桌面与 Windows 专属
| 包 | 版本 | 说明 |
|---|---|---|
| pyqt5 5.15.11 / pyqt5-qt5 5.15.2 / pyqt5-sip 12.17.1 | PyQt5 全套(qtawesome 1.4.1、qtpy 2.4.3 配套) | |
| pyqtwebengine 5.15.7(+ pyqtwebengine-qt5 5.15.2) | Qt WebEngine 子集 | |
| pythonqwt 0.15.0 | Qt 绑图控件 | |
| pywin32 311 / pywin32-ctypes 0.2.3 / pywinpty 3.0.3 | Windows 扩展与伪终端 |
其余大量条目(异步生态 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 文件不是手写维护的,而是构建流水线自动产出。调用链如下(均在本仓库可直接查看):
- 入口脚本: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)。 - 生成清单: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/归档。 - 渲染实现:wppm/wppm.py#L116-L131 的
generate_package_index_markdown()依次输出 "Tools"、"Python packages"、"WheelHouse packages" 三个小节——与本文开头看到的原清单三段式结构完全一致。 - 配套 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):
| 键 | 值 | 含义 |
|---|---|---|
| requirements | requirements_slim.txt | 顶层包清单(见下) |
| source_dirs | packages.win-amd64 | win_amd64 wheel 来源目录 |
| toolsdirs | bdTools\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.
相关推荐
WinPython free 版发布清单解析:WinPython 3.13.0.1 free(64 位)内置包索引与构建体系解读
WinPython free 版发布清单解析:WinPython 3.13.0.1 free(64 位)内置包索引与构建体系解读 WinPython 是一款面向
开发工具构建工具CLI包管理器WinPython Zero 发行版 changelog 深度解读:64 位 3.7.0.0 的包清单、索引格式与构建链路
WinPython Zero 发行版 changelog 深度解读:64 位 3.7.0.0 的包清单、索引格式与构建链路 本篇技术指南以仓库 changelo
开发工具构建工具CLI包管理器WinPython 3.13.12.0 slim(64 位)发行版包清单解析与构建体系指南
WinPython 3.13.12.0 slim(64 位)发行版包清单解析与构建体系指南 本文以 WinPython 官方 changelog 文档 chan
开发工具构建工具CLI包管理器
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考