WinPython 3.11.6.0dot 发布解读:64 位便携发行版的升级清单与 changelog 自动化生成机制
开发工具构建工具CLI包管理器【免费下载链接】winpythonA free Python-distribution for Windows platform, including prebuilt packages for Scientific Python.项目地址https://gitcode.com/gh_mirrors/wi/winpython点击查看免费下载导读本文围绕 WinPython 仓库中 WinPythondot-64bit-3.11.6.0_History.md 这一变更历史文档展开梳理 WinPython-64bit 3.11.6.0dot 发行版自 3.11.5.0dot 以来的全部包升级明细、完整包清单并深入仓库构建工具链源码还原这份 changelog 文档的自动化生成过程。读完本文你将掌握dot 这个发行版 flavor 的确切含义、如何阅读 WinPython 包索引与变更历史文档、以及使用wppm -diff自行对比任意两个发行版包清单的方法。一、版本档案什么是 WinPython 3.11.6.0dotWinPython 是一个面向 Windows 平台的便携式portablePython 发行版自带科学计算常用的预编译包与工具链。仓库根目录的 README.rst 明确指出本仓库是 WinPython 的wppmPython 包与构建工具链仓库而非发行版本身它提供两大能力WPPMWinPython Package Manager用于浏览预装包、从随发行版附带的 Wheelhouse 安装包或注册 WinPython以及WinPython 构建工具链通过 TOML 配置从几乎零开始构建一个发行版。版本串3.11.6.0dot可以拆解为三层信息3.11.6CPython 解释器版本.0WinPython 自己的发行版次版本号构建轮次dot发行版 flavor风味/变体由 winpython_builds.toml 中的[flavors.dot]区块定义。从 winpython_builds.toml 可以看到 dot flavor 的构建配置[flavors.dot] requirements dot_requirements.txt source_dirs packages.win-amd64 toolsdirs bdTools\\Tools.dotrequirements指向 dot_requirements.txt决定该 flavor 的核心包集合source_dirs指向 amd64 平台的 wheel 源目录toolsdirs指向随发行版捆绑的工具目录。与之并列的还有dotffree-threaded 无 GIL 变体、slim、slimf等 flavor它们共享同一套winpython_builds.toml配置框架。文档文件名中WinPython**dot**-64bit正是 flavor 出现在发行版标识中的体现。二、3.11.6.0dot 完整包清单配套的 WinPythondot-64bit-3.11.6.0.md 是该版本的包索引package index完整列出了发行版包含的全部 Python 包。与 3.11.5.0dot 相比包集合数量保持一致7 个无新增、无移除包名版本说明Python3.11.6Python 编程语言及标准库msvc_runtime14.36.32532将 Microsoft™ Visual C™ 运行时 DLL 安装到 sys.prefix 与 Scripts 目录pip23.2.1PyPA 推荐的 Python 包安装工具setuptools68.2.2便捷地下载、构建、安装、升级与卸载 Python 包sqlite_bro0.12.2单文件实现的图形化 SQLite 客户端wheel0.40.0Python 的 built-package 格式winpython7.0.20231126WinPython 发行工具含 WPPM这份 Markdown 表格并非手写而是由 WPPM 在构建阶段自动生成的wppm.py中的generate_package_index_markdown方法见 wppm/wppm.py会从目标发行版收集三部分数据——发行版身份名称、版本、Python 版本、位数、release level、Tools 列表、已安装 Python 包列表并统一渲染为Name | Version | Description三段式表格。这就是 changelogs 目录下各WinPython*-64bit-*.md文件的统一来源。三、自 3.11.5.0dot 以来的升级明细WinPythondot-64bit-3.11.6.0_History.md 的主题部分是本次升级的核心事实。该版本相对上一版 3.11.5.0dot 共升级了 4 个包包名升级前升级后说明msvc_runtime14.34.3193114.36.32532安装 Microsoft™ Visual C™ 运行时 DLL 到 sys.prefix 与 Scripts 目录Python3.11.53.11.6Python 编程语言及标准库setuptools67.8.068.2.2便捷地下载、构建、安装、升级与卸载 Python 包winpython7.0.202309237.0.20231126WinPython 发行工具含 WPPM对照上一版的变更历史 WinPythondot-64bit-3.11.5.0_History.md 可以看清演进脉络3.11.5.0dot 当时升级了 pip 23.1.2 → 23.2.1、Python 3.11.4 → 3.11.5、setuptools 67.7.2 → 67.8.0、winpython 6.4.20230625 → 7.0.20230923并移除了 duckdb 0.8.1。而 3.11.6.0dot 这次属于无增删、纯升级的小步快跑式迭代4 个升级包各有侧重Python 3.11.5 → 3.11.6将整个发行版的解释器内核推进到 3.11 系列的新补丁版本所有预装包均基于该解释器构建msvc_runtime 14.34.31931 → 14.36.32532刷新 Microsoft Visual C 运行时组件版本。该包的特殊性在于它把 VC 运行时 DLL 直接安装进发行版自身目录sys.prefix与Scripts而非依赖系统级安装这正是便携发行版解压即用、无需系统预装 VC 运行库的关键一环。值得注意的是当前仓库的 dot_requirements.txt 中该条目处于注释状态##msvc_runtime说明它通常由构建时的其他约束或历史轮次引入当前默认 flavors 配置不再直接列出setuptools 67.8.0 → 68.2.2打包工具链升级。setuptools 在 WinPython 构建流程中扮演核心角色它出现在 mandatory_requirements.txt 的必装列表里与 pip、wppm 并列是所有 wheel 构建/安装的基础依赖winpython 7.0.20230923 → 7.0.20231126WinPython 自身工具包含 WPPM的升级这是用 WinPython 工具维护 WinPython 发行版的自举式更新。四、changelog 是怎么生成的构建工具链的 Step 7这份 _History.md 文档不是人工整理的发布公告而是构建流水线的自动化产物。在 winpython/build_winpython.py 的 Step 7generate changelog中可以看到完整流程生成包索引以WINPYVER2、WINPYFLAVOR、WINPYVER环境变量驱动wppm.Distribution().generate_package_index_markdown()产出WinPython{flavor}-{arch}bit-{changelog_version}.md即上文第二部分的包清单归档索引将该索引复制到仓库的changelogs/目录与历史版本索引放在一起计算差异调用wppm.diff.compare_package_indexes(changelog_version, searchdirchangelog_dir, flavor..., architecture...)自动对比本版本索引与上一版本索引输出Upgraded / New / Removed packages三段式差异写入WinPython{flavor}-{arch}bit-{changelog_version}_History.md。差异计算的底层实现在 wppm/diff.py 中compare_package_indexeswppm/diff.py拼接出文档开头那句标准的 ## History of changes for WinPython-{architecture}bit {version2 flavor} 标题并逐段Tools / Python packages / WheelHouse packages比较新旧索引compare_packageswppm/diff.py按包名归一化-转_、转小写后做差集升级包输出格式正是文档中的旧版本 → 新版本箭头样式find_previous_versionwppm/diff.py负责定位上一版本它只依据changelogs/目录下的文件名用 PEP 440 语义解析版本并取严格小于目标版本的最大者——所以像3.14.7.1b1这类带 release level 的版本也能正确排序不会把 beta 版误当正式版跳过。此外Step 7 的注释还说明了一个设计取舍构建时生成的差异文件不会被复制进 changelogs/ 目录因为 flavor 在构建周期之间会增删、用户通常一年才升级一次发布与上一版对比意义有限读者若想对比任意两个版本的包清单应使用wppm -diff a.md b.md自行比较参见 tests/test_changelog_files.py 模块文档。五、如何复用这套机制CLI 与测试验证5.1 手动对比任意两个包索引wppm.diff同时提供了命令行入口wppm/diff.py 中的用法说明整理如下# 对比两个包索引文件的所有章节顺序、flavor 不限 wppm -diff file1.md file2.md python -m wppm.diff file1.md file2.md # 只对比指定章节 python -m wppm.diff file1.md file2.md --section python wheelhouse # 按成对章节对比 python -m wppm.diff file1.md file2.md --pairs python wheelhouse tools tools # 按版本号对比从 changelogs 目录自动寻找上一版本 python -m wppm.diff version2 version1 [searchdir] [flavor] [architecture] # 将对比结果写入 _History.md 文件 python -m wppm.diff --write-changelog version2 version1 [searchdir] [flavor] [architecture] [basedir]版本对比模式内部会调用find_previous_version自动定位基准版本也就是说即使你只给出版本号它也能从changelogs/目录中找到正确的上一版本。5.2 测试用例给出的行为契约仓库的测试对这套机制的行为做了精确约束可作为阅读文档时的参照tests/test_diff_versions.py 验证版本发现逻辑_History.md这类伴生文件永远不会被当作上一版本不同 flavordot 与 slim、dot 与 dotf互不干扰32 位与 64 位各自独立成线PEP 440 的 b1/rc1/post1 等 release level 都能正确解析与排序tests/test_changelog_files.py 验证构建产物归档规则一次构建产生 4 个元数据文件其中包索引.md、pylock.*.toml、requir.*.txt进入changelogs/而hashes_*.md描述单个构建的二进制而非发布本身不进入同时有意不写任何_History.md伴生文件——历史对比文档应由读者按需用wppm -diff生成而不是发布时自动附带。六、升级包在构建体系中的角色从构建依赖的角度可以把这几个升级包映射到工具链的不同环节Python 3.11.6构建产物本身的解释器。注意 README 中注明运行构建工具链需要 Python ≥ 3.11运行 wppm 需要 Python ≥ 3.10——发行版与工具链对 Python 版本的要求是两回事pip / setuptools / wheel三者是 Python 打包生态的铁三角。setuptools 被列在 mandatory_requirements.txt必装清单与 pip、wppm 并列wheel 定义 built-package 格式wppm.py中的do_pip_actionwppm/wppm.py显示 WPPM 安装包时本质上仍调用目标发行版内的python -m pip若存在scripts/env.bat则通过它激活发行版环境后再执行winpython 7.0.20231126WPPM 本体。其核心类Distributionwppm/wppm.py负责包索引收集、shebang 可移动化修补patch_all_shebang以及 pywin32、pip、spyder 等特殊包的后置处理patch_standard_packages保证发行版在任意目录解压后都能直接运行msvc_runtime 14.36.32532提供 VC 运行时 DLL使发行版在未安装系统级 VC 运行库的 Windows 机器上也能运行依赖该运行时的二进制扩展。总结WinPython 3.11.6.0dot 是一次聚焦内核 工具链的常规升级解释器推进到 CPython 3.11.6VC 运行时与 setuptools、WinPython 工具包同步刷新包集合保持稳定。更重要的是透过这份 _History.md 文档可以看到 WinPython 仓库元数据自举的工程实践——包索引由 WPPM 从发行版实时生成变更历史由wppm.diff按 PEP 440 语义自动比对测试用例则将命名规范、归档规则与 flavor 隔离等行为固化为契约。如果你需要对比其他版本的包差异直接使用wppm -diff即可无需依赖仓库预生成的任何历史文档。赞分享开发工具构建工具CLI包管理器【免费下载链接】winpythonA free Python-distribution for Windows platform, including prebuilt packages for Scientific Python.项目地址https://gitcode.com/gh_mirrors/wi/winpython点击查看免费下载相关推荐WinPython Zero 3.4.4.5最小化便携 Python 发行版的完整包清单与 Changelog 生成机制WinPython Zero 3.4.4.5最小化便携 Python 发行版的完整包清单与 Changelog 生成机制 本文以 WinPythonZero开发工具构建工具CLI包管理器WinPython 3.7.7.0 发布解析64 位发行版完整包清单、变更历史与 changelog 生成机制WinPython 3.7.7.0 发布解析64 位发行版完整包清单、变更历史与 changelog 生成机制 本文以仓库 changelogs/WinPyt开发工具构建工具CLI包管理器WinPython 3.7.4.0Zero 64 位发行版包清单全解极简发行版的组成、演进与 changelog 生成机制WinPython 3.7.4.0Zero 64 位发行版包清单全解极简发行版的组成、演进与 changelog 生成机制 导读 WinPython 是面向开发工具构建工具CLI包管理器上一篇Anthropic-Cybersecurity-Skills 实战用 Falco 现代 eBPF 驱动检测容器运行时威胁容器逃逸、命名空间滥用与特权挂载下一篇CookLikeHOC 胡萝卜炒肉片老乡鸡后厨配方复刻与中央厨房调理肉片的量化炒制指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考