☰
WinPython 3.10.0.1dot(64 位)发布包详解:dot 精简风格构建的组成与机制
2026/10/17 2:00:25 网站建设 项目流程
  • 开发工具
  • 构建工具
  • CLI
  • 包管理器

【免费下载链接】winpython

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

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

本文围绕 WinPython 仓库中 changelogs/WinPythondot-64bit-3.10.0.1.md 这份发布索引展开,逐项解读 WinPython 3.10.0.1dot 这一 64 位 dot 风格发行版所内置的工具与 Python 包清单,并结合仓库中的构建配置(winpython_builds.toml、dot_requirements.txt)与构建流水线(winpython/build_winpython.py、winpython/make.py、wppm/wppm.py),说明 dot 风格在整个 WinPython 构建体系中的定位。读完本文,你将能够:读懂 WinPython changelog 索引的表格结构与命名规范,理解 dot 风格为何仅包含最精简的 Python 包集合,并掌握从这份索引出发进一步查阅锁文件、需求文件与版本对比的仓库路径。

发布索引是什么:一份自动生成的包清单

WinPythondot-64bit-3.10.0.1.md是 WinPython 仓库 changelogs 目录下众多"发布索引"(package index)文件之一。它的结构非常固定:以## WinPython 3.10.0.1dot开头,随后依次列出### Tools(工具)与### Python packages(Python 包)两个分节,每个分节都是Name | Version | Description三列 Markdown 表格。

这份文件并非手写,而是构建流水线在完成发行版组装后自动生成的。在 winpython/build_winpython.py 的 Step 7 中,构建脚本调用wppm.Distribution().generate_package_index_markdown(),把当前发行版内安装的工具、Python 包和 WheelHouse 包序列化为上述 Markdown 表格;文件名由WinPython{flavor}-{arch}bit-{version}.md模板拼出,例如WinPythondot-64bit-3.10.0.1就对应 flavor =dot、arch =64、版本号 =3.10.0.1。

从文件名还可以读出一个信息:3.10.0.1是 WinPython 的四段式版本号(winpyver2),其中前三段来自上游 Python 版本3.10.0,最后一段1是该 Python 版本下 WinPython 自己的第 1 个构建号。这在 winpython/make.py 的winpython_version_name属性中体现为{python_full_version}.{build_number}{flavor}{release_level}的拼接规则,dot即 flavor 名。

解读 3.10.0.1dot 的包清单

该索引的 Tools 分节为空,Python packages 分节共列出 6 个包,含义如下:

名称版本说明
Python3.10.0Python 编程语言及标准库
msvc_runtime14.29.30133将 Microsoft Visual C++ 运行库 DLL 安装到sys.prefix与Scripts目录
pip21.3.1PyPA 官方推荐的 Python 包安装工具
setuptools58.5.3用于下载、构建、安装、升级和卸载 Python 包的构建后端
sqlite_bro0.12.1单文件实现的图形化 SQLite 客户端
wheel0.37.0Python 内置包(wheel)格式
winpython4.6.20211106WinPython 发行版工具,包含 WPPM

这份清单与仓库根目录的 dot_requirements.txt 高度吻合——该文件是 dot 风格构建的依赖清单,内容为:

# the essential sqlite_bro setuptools wheel build ##msvc_runtime # end of requirements.txt

其中build是构建期需要但在最终发行版中未保留(或未展示)的构建前端,##msvc_runtime是注释掉的条目(两个#开头),而最终的包列表里msvc_runtime依然出现,说明它由 mandatory_requirements.txt 或构建流程的其他步骤带入。对照 winpython/build_winpython.py,实际安装分为两步:先安装"Mandatory"清单(mandatory_requirements.txt,内容为pip、setuptools、wppm),再安装"Main"需求文件(即 flavor 各自的 requirements,dot 对应 dot_requirements.txt)。

dot 风格在 WinPython 构建体系中的定位

WinPython 采用"flavor(风格)"机制在同一 Python 版本之上产出多种裁剪程度的发行版。winpython_builds.toml 中的[flavors.dot]定义如下:

[flavors.dot] requirements = "dot_requirements.txt" source_dirs = "packages.win-amd64" toolsdirs = "bdTools\\Tools.dot"

其中:

  • requirements:dot 风格依赖的 wheel 需求文件,即 dot_requirements.txt,只含sqlite_bro、setuptools、wheel、build四个条目;
  • source_dirs:wheel 轮子与 Python 压缩包所在目录(64 位为packages.win-amd64);
  • toolsdirs:需要随发行版携带的开发工具目录。

由于 mandatory_requirements.txt(pip、setuptools、wppm)是每个风格都要安装的,因此最终包清单里出现 Python、pip、setuptools、wheel、sqlite_bro、winpython(内含 WPPM)与 msvc_runtime 就顺理成章了——dot 是"只含必需项"的精简风格,没有附带 Pandoc、科学计算栈等额外工具,这也解释了其 Tools 分节为空的原因。

值得注意的是,当前仓库的主干构建(winpython_builds.toml)仅列出现役的 3.13/3.14/3.15 系列 Python,3.10.0.1dot属于历史构建周期,其构建入口已不在当前[pythons]表中;dot 风格本身依然活跃,是 2026-03 等新周期的构建矩阵成员(见 cycles/2026_03.toml)。

从索引继续深入:锁文件、需求文件与版本对比

一份 changelog 索引不是孤立的:同一个构建周期会同时产出配套的锁文件与需求文件。以较新的构建为例,一次构建会生成:

  • WinPython{flavor}-{arch}bit-{version}.md:本文讲解的包索引;
  • pylock.{arch}-{py}_{build}{flavor}.toml:pip lock生成的精确锁定清单(含哈希);
  • requir.{arch}-{py}_{build}{flavor}.txt:由锁文件转换而来、带 hash256 的需求文件。

其生成逻辑位于 winpython/build_winpython.py:构建完成后,脚本用目标 Python 执行pip freeze得到已安装包集合,分别对"web(在线)"与"local(本地 wheelhouse)"两个来源执行pip lock --no-deps -c constraints,再用 wppm/wheelhouse.py 的pylock_to_req把锁文件转成带哈希的 requirements 文件,最后比对两份结果是否一致,作为可复现性校验。

如果你想比较任意两次发布(例如某个 dot 版本与其前后版本)的包差异,可以借助 wppm/diff.py 提供的索引解析能力:它会把### Tools、### Python packages、### WheelHouse packages三个分节分别解析为tools、python、wheelhouse三个包字典,然后按"新增 / 升级(旧版本 → 新版本)/ 移除"三类输出差异(见 wppm/diff.py)。在仓库的 CLI 中对应wppm -diff <索引1.md> <索引2.md>(见 wppm/wppm.py)——任意两个索引、任意方向都可以比较,不要求版本相邻,这也正是 changelogs 目录不再保留_History.md配套文件的原因(见 tests/test_changelog_files.py 的说明)。

给读者的快速上手指南

  1. 快速定位某次发布的包清单:在 changelogs 目录中按WinPython{风格}-{位数}bit-{版本}.md命名规则查找,例如本文主题WinPythondot-64bit-3.10.0.1.md;
  2. 理解风格差异:对照 winpython_builds.toml 中各[flavors.*]块的requirements/source_dirs/toolsdirs三个键,即可知道每种风格基于哪个需求文件、从哪个轮子目录取材;
  3. 核对包版本的约束来源:各风格实际可用的包版本下限由 constraints.txt 统一约束(格式为包名>=版本,例如setuptools>=80.9.0);
  4. 追溯构建过程:从 winpython/build_winpython.py 的 Step 1–8 注释可以完整还原"拆 Python 压缩包 → 安装必选/主需求 → 修补可移植性 → 字节码编译 → 安装 WheelHouse 需求 → 生成锁文件 → 生成 changelog → 打安装包"的流水线;
  5. 自行对比两次发布:对两份索引执行wppm -diff即可获得新增、升级、移除三类变更清单。

结语

WinPython 3.10.0.1dot 这份发布索引虽短,却是理解 WinPython"一个 Python 版本、多种裁剪风格"体系的绝佳切片:它展示了 flavor 机制如何通过 dot_requirements.txt 与 winpython_builds.toml 把一套"精简到极致"的发行版拼装出来,也展示了 changelog 索引、锁文件与需求文件如何形成可复现、可对比的发布元数据闭环。无论你是想复刻一个 dot 风格发行版,还是想快速读懂任意一份 WinPython 发布索引,以上仓库路径与源码线索都能帮你直达答案。

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

【免费下载链接】winpython

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

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

相关推荐

上一篇:企业级混沌工程实战:LitmusChaos大规模Kubernetes集群部署完整指南 🚀
下一篇:MAS 免费激活 Windows/Office:普通用户的五阶段完整实操指南

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询