
开发工具构建工具CLI包管理器【免费下载链接】winpythonA free Python-distribution for Windows platform, including prebuilt packages for Scientific Python.项目地址https://gitcode.com/gh_mirrors/wi/winpython点击查看免费下载本篇以 WinPythonZero-3.5.3.0.md 这一历史发行版的包索引文档为主体完整梳理 WinPython Zero 最小化变体的包构成与版本变更并结合 wppm 源码说明这类 Markdown 包索引是如何被自动生成、被解析、以及被wppm -diff两两对比的。读完你可以看懂changelogs/目录下每个发行版索引文件的格式约定与命名规则会用wppm -md生成任意 Python 发行版的包清单用wppm -diff在任意两个发行版索引之间做包级对比并理解 Zero 这类最小化变体与 dot/slim 等标准变体的差异。1. changelogs 包索引在 WinPython 中的角色WinPython 仓库wppm 工具链与构建工具仓库而非发行版本体中changelogs/目录存放了从 2.7.3 时代至今、覆盖 Zero、Slim、Qt5、cod、PyPy、dot、slim 等各个历史变体的每版本包索引命名规则统一为WinPython{flavor}-{arch}bit-{winpyver}.md # 包索引本体 WinPython{flavor}-{arch}bit-{winpyver}_History.md # 与上一版本的变更对照历史遗留其中{flavor}可以是Zero、Slim、Qt5、dot、slim、PyPy等早期变体还带32bit/64bit段无该段表示未区分架构。这一命名被构建流水线的测试 tests/test_changelog_files.py 明确钉死parse_changelog_name(WinPythonslim-64bit-3.15.0.5b1.md)应解析为(slim, 64, 3.15.0.5b1)WinPython-64bit-3.9.8.0.md解析为无 flavor 的(, 64, 3.9.8.0)而*_History.md伴生文件、hashes_*.md、pylock.*.toml、README.md都不被当作包索引处理。每个索引文件回答一个问题这个发行版里装了什么。它以 Markdown 表格列出 Tools随附开发工具、Python packages已安装包、以及新版索引才有WheelHouse packages可离线安装的 wheel 仓库。这正是 WinPythonZero-3.5.3.0.md 的形态。2. WinPythonZero-3.5.3.0.md包索引全文WinPythonZero-3.5.3.0.md 的完整内容如下标题为 WinPython 3.5.3.0Zero声明该清单属于 WinPython v3.5.3.0ZeroTools原文的 Tools 表格为空仅有表头。从源码结构看这与 Zero 变体的最小化定位一致wppm/utils.py 的get_installed_tools()只会探测发行版根目录下n/node.exe、t/pandoc.exe、t/VSCode/Code.exe三个随附工具存在才写入 Tools 行——Zero 不带这些工具该节因此为空表格中 Python 解释器版本由 Python packages 一节表达见下文解析细节。Python packages原文表格完整继承如下14 个包名称版本说明Python3.5.3Python programming language with standard librarydocopt0.6.2Pythonic argument parser, that will make you smileidlex1.13IDLE Extensions for Pythonjedi0.9.0An autocompletion tool for Python that can be used for text editorspip9.0.1A tool for installing and managing Python packagesprompt_toolkit1.0.9Library for building powerful interactive command lines in Pythonptpython0.36Python REPL build on top of prompt_toolkitpygments2.1.3Generic syntax highlighter for general use in all kinds of softwarepyodbc4.0.3DB API Module for ODBCpythonnet2.2.1.Net and Mono integration for Pythonsetuptools33.1.1Download, build, install, upgrade, and uninstall Python packages - easilysix1.10.0Python 2 and 3 compatibility utilitiessqlite_bro0.8.11a graphic SQLite Client in 1 Python filewcwidth0.1.7Measures number of Terminal column cells of wide-character codeswinpython1.7.20170128WinPython distribution tools, including WPPM (package manager)这份清单体现了 Zero 变体的取舍只有解释器 包管理 终端增强——pip/setuptools负责安装升级prompt_toolkit/ptpython/pygments/jedi/wcwidth组成一个功能完整的交互式 REPL自动补全、语法高亮、宽字符对齐idlex增强 IDLE再配pyodbcODBC 数据库、pythonnet.NET/Mono 互操作、sqlite_bro单文件图形 SQLite 客户端三个实用库以及docopt、six两个基础依赖。没有 NumPy/SciPy/Qt 等科学计算栈——那是 dot/slim 等变体才提供的。winpython包本身版本1.7.20170128说明该索引生成于 2017 年 1 月构建周期结合 Python 3.5.3 的发布时间点这是 Zero 系列较末期的一次小版本迭代Zero 后续让位于 Slim 等变体。索引表格的解析约定wppm的 diff 模块 wppm/diff.py 定义了这类索引的可解析格式PackageIndex只识别三个章节头HEADERS {tools: ### Tools, python: ### Python packages, wheelhouse: ### WheelHouse packages}每行包条目须匹配正则即名称链接 版本 说明三列PATTERNS [ r\[([\w\-\:\/\.\_])\]\(([^)])\) \| ([^\|]*) \| ([^\|]*), # SourceForge r\[([\w\-\:\/\.\_]) ([^\]\ ])\] \| ([^\|]*) \| ([^\|]*) # Google Code ]由此可以确认两点格式事实Python 解释器行会被 diff 跳过——它只写版本不写链接不匹配上述正则compare_packages()只对比能解析成功的行零值空节合法——### Tools下没有数据行不影响解析BLANKS集合会把表头分隔行、空行等噪音统一过滤。3. 相对 3.5.2.4Zero 的变更_History 文件伴随文件 WinPythonZero-3.5.3.0_History.md 记录了自 3.5.2.4Zero 以来的变更完整继承如下新增包New packagespyodbc 4.0.3DB API Module for ODBC升级包Upgraded packagesPython 3.5.2 → 3.5.3Python programming language with standard librarypythonnet 2.2.0 → 2.2.1.Net and Mono integration for Pythonsetuptools 32.3.0 → 33.1.1Download, build, install, upgrade, and uninstall Python packages - easilywinpython 1.7.20161101 → 1.7.20170128WinPython distribution tools, including WPPM (package manager)即本次迭代的核心是Python 解释器跟进到 3.5.3C 扩展兼容性更新并新引入pyodbcsetuptools与发行版工具包winpython同步刷新。需要注意的历史演进_History.md是与紧邻上一版本对比的链式记录而当前构建体系已不再自动产出它。tests/test_changelog_files.py 的模块 docstring 明确说明这一决定变体在各构建周期间时有增减逐版本链对比意义有限想要的对比是读者自选任意两个索引——wppm -diff a.md b.md端到端测试test_no_history_is_written_againest_the_previous_release还专门断言构建脚本不得再写出*_History.md。因此本文档属于历史产物其对比价值如今由wppm -diff的任意两两对比取代。4. 索引如何生成wppm -md 的实现链changelogs/里每个.md索引都由 WPPMWinPython Package Manager从目标发行版实机采集生成。入口在 wppm/wppm.py 的main()-md--markdownmarkdown summary of the installation触发Distribution.generate_package_index_markdown()可选-j--json改为输出get_package_index_data()的 JSON-t指定目标发行版路径默认sys.prefix# 生成当前发行版的 Markdown 包索引相当于 changelogs/*.md 的产物 wppm -t C:\WPy64-3530\python -md # 同时把 WheelHouse 里的包作为对比节输出 wppm -t C:\WPy64-3530\python -md -ws .采集逻辑分三步均见 wppm/wppm.pyget_package_index_data()发行版身份utils.get_python_infos()执行sys.maxsize 2**32判定 32/64 位、sys.version_info取主次版本wppm/utils.py版本号优先取环境变量WINPYVER2构建时由scripts/env.ini注入见 winpython/make.py 的WINPYVER/WINPYVER2/WINPYFLAVOR配置取不到就按普通 Python而非 WinPython 品牌化Toolsget_installed_tools()按上文路径探测node.exe/pandoc.exe/VSCode/Code.exe用pandoc -v或 Windows FileVersion 资源取版本Python packages经PipData的pip_list(fullTrue)拿到包名-版本-摘要三元组WheelHouse若wheeldir或默认的WheelHouse/included.wheels目录存在列出其中 wheel 的元数据URL 统一写成https://pypi.org/project/{name}。render_markdown_for_list()按名称、版本排序后逐行渲染为name | version | summary表格行——正是本文第 2 节看到的行格式也是diff.py正则能够解析的源头generate_package_index_markdown()拼装## {name} {version}标题、The following packages are included in ... 引言行与 WinPythonZero-3.5.3.0.md 第 3 行措辞一致以及 Tools / Python packages / WheelHouse packages 三节。构建侧如何得到WINPYVER2等身份信息winpython/make.py 的_create_env_config()在解包python.zip、复制 launchers 与t/工具后写入scripts/env.ini版本命名规则由winpython_version_name属性给出{python_full_version}.{build_number}{flavor}{release_level}如3.5.3.0Zero 3.5.3 构建号 0 flavor Zero。上层入口 build_winpython_meta.py 与 winpython_builds.toml 则把(python, flavor)二元组展开成完整构建命令--flavor、--release、--release-level等参数一一对应其中flavor字段决定了索引文件名中的Zero/Slim/dot段。5. 索引如何对比wppm -diff 的两两差异对本文这类索引最有用的消费方式是wppm -diff。wppm/wppm.py 中其帮助文本写明可对比任意两个发行版或 flavor任意方向不必连续wppm -diff WinPythonslim-64bit-3.13.5.0.md WinPythonslim-64bit-3.14.7.0.md对照本文的两个 Zero 索引含 Python 行被跳过、仅解析 14→14 个数据行的行为命令形如wppm -diff changelogs/WinPythonZero-3.5.2.4Zero.md changelogs/WinPythonZero-3.5.3.0Zero.md实现路径main()识别-diff后直接把 stdout 重配置为 UTF-8注释解释原因升级行输出 1.2.3 → 1.2.4若把箭头替换成 ? 则整页输出被毁然后调用 wppm/diff.py 的compare_files()。差异算法在compare_packages()包名先做replace(-, _).lower()归一化然后按集合运算得出三类New packages新索引有、旧索引无Upgraded packages两边都有但版本不同输出old → newRemoved packages旧索引有、新索引无均无差异时输出No differences found.。用 3.5.3.0Zero 相对 3.5.2.4Zero 的预期结果恰为new pyodbcupgraded pythonnet 2.2.0 → 2.2.1、setuptools 32.3.0 → 33.1.1、winpython 1.7.20161101 → 1.7.20170128python行不被解析故不出现在 diff 输出中。测试 tests/test_diff_versions.py 覆盖该对比逻辑tests/test_changelog_files.py 的端到端用例则复用仓库中真实的changelogs/WinPythonslim-64bit-3.15.0.4.md与WinPythonslim-64bit-3.14.7.0.md做实际 diff保证索引格式—生成—解析—对比闭环不回退。6. 阅读指引从这份历史索引出发想看同代标准变体的完整科学计算栈对比 changelogs/WinPython-3.5.2.3.md 与 changelogs/WinPython-3.5.3.0.md若不存在请以 changelogs/ 目录实际文件为准用wppm -diff任意两两对比想了解当前构建体系dot/slim/slimf/dotf 四个 flavor、[pythons.3XX]块、--dry-run干跑见 winpython_builds.toml 头部注释与 build_winpython_meta.py发行版目录结构解包python.zip、scripts/env.ini、t/工具目录、settings 目录见 winpython/make.py 的WinPythonDistributionBuilder.build()WPPM 其余能力-ls列表、-p/-r依赖树、--register注册为 Windows 已知 Python、-i从 WheelHouse 安装、pylock.toml 拖放安装参数定义集中在 wppm/wppm.py 的ArgumentParser中。适用前提本仓库为 WPPM 与构建工具链仓库运行 WPPM 需要 Python 3 ≥ 3.10、构建工具链需要 Python 3 ≥ 3.11见 README.rst Dependencies本文涉及的 3.5.3.0Zero 为 2017 年 1 月的历史构建产物仅用于理解 changelogs 索引格式与 Zero 变体的包构成不代表当前可下载或受支持的发行版本。赞分享开发工具构建工具CLI包管理器【免费下载链接】winpythonA free Python-distribution for Windows platform, including prebuilt packages for Scientific Python.项目地址https://gitcode.com/gh_mirrors/wi/winpython点击查看免费下载相关推荐WinPython 3.4.4.7Zero 发行版索引详解包清单、变更历史与 WPPM 索引生成机制WinPython 3.4.4.7Zero 发行版索引详解包清单、变更历史与 WPPM 索引生成机制 本文以 WinPython 仓库中 WinPython开发工具构建工具CLI包管理器WinPython 3.6.3.0Qt5 (32bit) 发行版包清单解析与版本演进:从 changelogs 索引到 wppm -diff 生成管线WinPython 3.6.3.0Qt5 32bit 发行版包清单解析与版本演进:从 changelogs 索引到 wppm diff 生成管线 本文以 cha开发工具构建工具CLI包管理器WinPython 3.5.2.1Zero 最小化包清单解读Zero 版构成、升级轨迹与 wppm 索引对比机制WinPython 3.5.2.1Zero 最小化包清单解读Zero 版构成、升级轨迹与 wppm 索引对比机制 本文围绕 WinPython 仓库中 Win开发工具构建工具CLI包管理器上一篇BookNLP如何用AI技术5分钟解锁长文本分析新技能下一篇如何快速搭建Jellyfin直播电视系统从零开始完整指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考