开发工具构建工具CLI包管理器【免费下载链接】winpythonA free Python-distribution for Windows platform, including prebuilt packages for Scientific Python.项目地址https://gitcode.com/gh_mirrors/wi/winpython点击查看免费下载WinPython-64bit 3.11.3.0 是该发行版在 Python 3.11 主线上的一个重要迭代从 3.11.0.1 升级而来。本文以仓库中的 WinPython-64bit-3.11.3.0_History.md 为主体完整梳理本次发行新增、升级与移除的软件包并结合 wppm/diff.py、winpython/build_winpython.py 等源码讲清楚这类 History 文档是如何自动生成的、它的格式约定是什么以及普通用户如何用wppm -diff自行对比任意两个版本的包清单。读完本文你既能快速了解 3.11.3.0 相比 3.11.0.1 到底变了什么也能掌握 WinPython changelog 体系的读写与复用方法。一、这份文档是什么History 文档在 changelog 体系中的位置在仓库的 changelogs 目录中每一个 WinPython 版本都有两类文档包索引Package Index如 WinPython-64bit-3.11.3.0.md以 Markdown 表格形式列出该版本发行包内的全部工具与 Python 包及其版本、描述是某版本装了什么的完整快照。版本历史History如本文主体 WinPython-64bit-3.11.3.0_History.md记录的是自上一个版本以来发生了什么即对前后两个包索引做差异对比后的结果按New packages新增、Upgraded packages升级、Removed packages移除三类罗列。从 wppm/diff.py 的实现可以确认compare_packages()先把两个索引中的包名统一为小写并以下划线替换连字符k.replace(-, _).lower()再分别求出added新索引中有而旧索引中没有的包upgraded两索引都有但版本号不同的包输出格式固定为旧版本 → 新版本removed旧索引中有而新索引中没有的包。本份 3.11.3.0 History 文档的基准版本正是3.11.0.1标题行 The following changes were made to WinPython-64bit distribution since version 3.11.0.1 由 wppm/diff.py 的compare_package_indexes()自动生成其比较方向是旧 → 新升级行一律写成旧 → 新形式避免读者将比较方向弄反时把升级误读为降级。1.1 History 文档与索引文档的命名约定索引文档命名WinPython{flavor}-{arch}bit-{version}.md如WinPython-64bit-3.11.3.0.md无 flavor 时即标准发行版History 文档命名WinPython{flavor}-{arch}bit-{version}_History.md如WinPython-64bit-3.11.3.0_History.md。winpython/build_winpython.py 中通过mdn与out两个变量分别构造这两类文件名。命名规则在测试 tests/test_changelog_files.py 中被固定下来解析器只接受真正的包索引名_History.md等伴随文件会被明确拒绝——History 不是一份独立索引它只是前后两个索引的差异视图。1.2 为什么 History 文档不进入正式发布归档仓库测试 tests/test_changelog_files.py 的模块注释与 winpython/build_winpython.py 的注释给出了明确的设计取舍History 是写给正在构建发行版的人看的发布前检查本次构建相比上一次移动了哪些包因此它只生成在构建输出目录旁不会被复制进changelogs/归档。原因在于flavors如 slim、dot在不同发布周期之间时有时无且普通用户大约一年才升级一次与紧邻上一版本的对比对读者没有持续价值。读者真正需要的是自己任选两个版本/两个 flavor 进行对比这由wppm -diff提供。这与本文档实际所在位置并不矛盾——当前仓库是开发与构建工具链仓库保留了较早期周期的历史文档而这一生成逻辑正是理解本份 History 文档由来的关键。二、3.11.3.0 相比 3.11.0.1 的完整变更清单本节完整继承 History 文档的全部条目并适当归类说明便于快速检索。2.1 工具Tools升级本次发行随附的外部工具做了两个升级均服务于 JavaScript/前端生态工具原版本新版本说明Nodejsv16.16.0v18.16.0基于 Chrome V8 引擎的 JavaScript 运行时npmjs8.11.09.5.1JavaScript 包管理器Node.js 从 16 LTS 线跨入 18 线npm 同步跟进到 9.x意味着 JupyterLab 前端扩展、jupyterlab-risize 幻灯片、基于 Node 的构建工具等都会在新版本环境中运行。2.2 新增的 Python 包New packages3.11.3.0 一次性引入了 100 个新包覆盖深度学习、贝叶斯统计、凸优化、地理可视化、NLP、Jupyter 协作等多个方向。以下按技术领域分组列出包名与版本号均来自 History 文档括号内为官方描述摘要深度学习与 PyTorch 生态accelerate 0.19.0AccelerateHugging Face 的训练加速库botorch 0.8.5基于 PyTorch 的贝叶斯优化gpytorch 1.10PyTorch 中的高斯过程实现linear_operator 0.4.0有限维正定算子线性代数实现gpytorch 的底层依赖torch 2.0.1张量与动态神经网络GPU 加速torchaudio 2.0.2PyTorch 音频处理包torchvision 0.15.2图像/视频数据集与模型fastai 2.7.12让 PyTorch 深度学习更快、更准、更简单fastcore 1.5.11、fastdownload 0.0.7、fastprogress 1.0.3fastai 生态组件transformers 4.29.1面向 JAX/PyTorch/TensorFlow 的 SOTA 机器学习库tokenizers 0.13.3快速可定制的分词器huggingface_hub 0.14.1HF Hub 的下载/发布客户端openai 0.27.5OpenAI API 的 Python 客户端opt_einsum 3.3.0优化 numpy 的 einsum 函数numba 0.57.0基于 LLVM 编译 Python 代码与 llvmlite 0.40.0贝叶斯统计与 MCMCarviz 0.15.1贝叶斯模型探索性分析pymc 5.3.0马尔可夫链蒙特卡洛采样工具箱pytensor 2.11.2数学表达式的 CPU/GPU 优化编译器PyMC 的符号计算后端pyro_api 0.1.2、pyro_ppl 1.8.4Pyro 概率编程库xarray_einstats 0.5.1xarray 上的统计/线性代数/einops凸优化与数值求解cvxopt 1.3.0凸优化包cvxpy 1.3.1凸优化问题的领域特定语言ecos 2.0.12嵌入式锥求解器osqp 0.6.2.post9算子分裂 QP 求解器qdldl 0.1.7LDL 分解例程quadprog 0.1.11二次规划求解器scs 3.2.3分裂锥求解器qpsolvers 3.1.0统一 API 的二次规划求解器集合地理空间与可视化cartopy 0.21.1带 Matplotlib 支持的地图绘制库geoviews 1.10.0a2.post4g65df916地理/气象/海洋数据集可视化pyshp 2.3.0ESRI Shapefile 纯 Python 读写datashader 0.14.5a1g7a97e97.dirty基于网格聚合的数据可视化工具链datashape 0.5.2数据描述语言spatialpandas 0.4.7空间/几何操作的 pandas 扩展数组umap_learn 0.5.1UMAP 降维、pynndescent 0.5.7最近邻下降NLP 与 spaCy 生态spacy 3.5.2工业级 NLP 库及其配套 spacy_legacy 3.0.12、spacy_loggers 1.0.3、thinc 8.1.9、blis 0.7.9、catalogue 2.0.8、confection 0.0.3、cymem 2.0.7、preshed 3.0.8、murmurhash 1.0.9、srsly 2.4.5、wasabi 0.10.1、smart_open 5.2.1、langcodes 3.3.0、pathy 0.10.1分布式计算与数据dask_ml 2023.3.24分布式/并行机器学习、dask_glm 0.2.0Dask 广义线性模型pyarrow 12.0.0Apache Arrow 的 Python 库feather_format 0.4.1基于 Arrow 的 Feather 文件格式封装h5netcdf 1.1.0通过 h5py 读写 netCDF4smart_open 5.2.1流式读取 S3/HDFS/GCS/Azure Blob 等大文件Jupyter 生态含协作编辑与幻灯片comm 0.1.3Jupyter 的 Comm 实现、ipydatagrid 1.1.15Notebook/JupyterLab 快速数据表格jupyter_events 0.6.3、jupyter_server_fileid 0.9.0、jupyter_server_terminals 0.4.4jupyter_ydoc 0.2.4、jupyter_server_ydoc 0.8.0、y_py 0.5.5、ypy_websocket 0.8.2基于 Y-CRDT 的 Jupyter 实时协作编辑栈jupyterlab_rise 0.2.0Reveal.js 幻灯片扩展、sphinxcontrib_jquery 4.1Web / API / 认证 / 数据访问streamlit 1.22.0最快构建数据应用的方式azure_core 1.25.1、azure_cosmos 4.3.1、azure_identity 1.12.0Azure 全家桶msal 1.22.0、msal_extensions 1.0.0微软认证库pyjwt 2.4.0JSON Web Token 实现dnspython 2.1.0DNS 工具包pymongo 4.3.3MongoDB 驱动、pyodbc 4.0.35ODBC 的 DB-API 模块python_json_logger 2.0.4、validators 0.18.2、typer 0.7.0Markdown / 文档工具链markdown_it_py 2.2.0、mdit_py_plugins 0.3.5、mdurl 0.1.2、linkify_it_py 2.0.0、uc_micro_py 1.0.1markdown-it 生态docstring_to_markdown 0.10、py2vega 0.6.1build 0.10.0、pyproject_hooks 1.0.0、maturin 0.14.15Python 打包与 Rust 绑定构建其他实用工具cachetools 5.2.0可扩展的记忆化集合/装饰器gmpy2 2.1.5GMP/MPIR/MPFR/MPC 接口guiqwt 4.3.3曲线与图像绘制的工具集quantecon 0.5.3数量经济学建模astroml 1.0.2.post1天文学机器学习/数据挖掘sklearn_contrib_lightning 0.6.2.post0大规模稀疏线性分类/回归/排序、pygbm 0.1.0基于 numba 的 GBM、dirty_cat 0.4.1脏类别机器学习multipledispatch 0.6.0、etuples 0.3.8、logical_unification 0.4.5、minikanren 1.0.3、cons 0.4.5关系/函数式编程工具asttokens 2.1.0、executing 1.2.0、pure_eval 0.2.2、stack_data 0.6.1AST/栈帧分析IPython 调试生态依赖more_itertools 9.0.0、jaraco.classes 3.2.3、portalocker 2.7.0、retrying 1.3.4、pympler 1.0.1、pyzstd 0.15.4格式/校验类fqdn 1.5.1、isoduration 20.11.0、rfc3339_validator 0.1.4、rfc3986_validator 0.1.1、uri_template 1.2.0、webcolors 1.12其他lazy_loader 0.2、gast 0.4.0、pylint_venv 2.3.02.3 升级的 Python 包Upgraded packages节选核心History 文档共记录约 90 个升级包这里列出对科学计算与开发体验影响最大的部分完整列表见原文档包原版本新版本Python3.11.03.11.3CPython 3.11 补丁版numpy1.23.41.24.2pandas1.5.11.5.2scipy1.9.31.10.1matplotlib3.6.03.7.1scikit_learn1.1.31.2.2scikit_image0.19.30.20.0seaborn0.12.10.13.0.dev0statsmodels0.13.20.14.0sympy1.11.11.12dask2022.10.12023.5.0distributed2022.10.12023.5.0bokeh2.4.33.1.1跨大版本dash2.6.22.8.1panel0.14.11.0.2跨大版本plotly5.11.05.13.1polars0.14.220.17.11duckdb0.5.2.dev13390.8.0geopandas0.12.10.13.0shapely1.8.5.post12.0.1跨大版本xarray2022.10.02023.4.2fastapi0.85.10.95.1starlette0.20.40.26.1uvicorn0.19.00.20.0networkx2.8.73.1跨大版本pyarrow—12.0.0新增见上ipython7.32.08.13.1跨大版本jupyterlab3.5.03.6.3jupyter_server1.21.02.5.0跨大版本jupyter_client7.3.48.2.0跨大版本jupyter_core4.11.25.3.0跨大版本ipykernel6.16.26.22.0spyder5.3.35.4.3spyder_kernels2.3.32.4.3pyzo4.12.4.dev04.12.7black22.10.023.3.0mypy0.9821.3.0pytest7.1.17.2.1pip22.323.1.2setuptools65.5.067.7.2pywin32304.0305pythonnet3.0.0rc13.0.1python_lsp_server1.5.01.7.2cryptography3.4.737.0.4sqlalchemy1.4.421.4.47sphinx5.3.06.1.3winpython5.1.202210306.1.20230518WinPython 发行工具本身含 WPPM2.4 移除的 Python 包Removed packages本次发行移除了 15 个包其中多数是因为功能被替代或上游停止维护altair_widgets 0.2.2Altair 交互式可视化组件dask_labextension 5.3.0Jupyter 扩展中管理 Dask 集群已被 JupyterLab 原生集成取代flask_compress 1.13Flask gzip 压缩great_expectations 0.14.11数据质量期望框架jsonpatch 1.32RFC 6902 JSON 补丁jupyter_lsp 1.5.1、jupyterlab_lsp 3.10.2LSP 集成jupyter_server_proxy 3.2.1、simpervisor 0.4Jupyter 服务代理及配套进程监督器palettable 3.3.0配色板pdvega 0.2.1.dev0pandas → Vega 绘图接口长期未维护py 1.11.0跨版本工具库pytest 7.2 起已不再依赖rise 5.7.1Reveal.js 幻灯片扩展被新增的 jupyterlab_rise 取代tomli 2.0.1TOML 解析器Python 3.11 标准库已内置 tomllibvega 3.6.0Vega widget三、这份 History 是如何生成的源码级拆解理解了清单内容之后值得看看它背后的生成链路这也是 WinPython 构建工具链中生成 changelog的标准步骤。3.1 构建流水线中的 Step 7在 winpython/build_winpython.py 中generate changelog 是构建流水线的第 7 步分两个子步骤生成包索引调用wppm.Distribution().generate_package_index_markdown()把当前构建产物的完整包清单写成WinPython{flavor}-{arch}bit-{version}.md并复制进 changelogs 目录生成 History调用wppm.diff.compare_package_indexes(version, searchdirchangelog_dir, flavor..., architecture...)自动从changelogs/中找到紧邻的上一个版本索引做差异对比后写出_History.md但保留在构建输出目录旁不进归档。注意第 316 行的注释changelog_version f{winpyver2}{args.release_level}——发布级别如 b1必须写进文件名否则一个 beta 与它转正后的正式版共享同一个winpyver2beta 的包清单会覆盖正式版的索引文件。3.2 上一个版本如何确定winpython/build_winpython.py 委托 wppm/diff.py 的find_previous_version()它遍历changelogs/中所有WinPython{flavor}-{arch}bit-{version}.{txt|md}文件用 PEP 440 版本解析器对文件名中的版本号排序选出小于目标版本的最大版本。由 tests/test_diff_versions.py 可见该逻辑已被测试严格约束带发布级别的版本如3.14.7.1b1会被正确识别并参与排序b1 位于 .0 与 .1 之间_History.md伴随文件永远不会被选为上一版本不同 flavor 之间互不干扰dot 不对比 slim且dot不会错误匹配dotf没有更早版本时回退为与自身对比得到空差异。3.3 差异文档的格式约定compare_package_indexes() 拼装出的最终文档就是本文档的模板## History of changes for WinPython-{arch}bit {version}{flavor} The following changes were made to WinPython-{arch}bit distribution since version {prev}{flavor}. ### Tools / ### Python packages New packages: ... Upgraded packages: ... (旧版本 → 新版本) Removed packages: ...其中 Tools 与 Python packages 两个区块分别调用 compare_markdown_sections() 完成对比升级行的箭头方向恒为旧 → 新。四、读者视角如何用wppm -diff做任意版本对比既然 History 文档不再随发布归档那么普通用户如何比较两个版本的差异答案是 WPPM 自带的-diff命令。相关入口在 wppm/wppm.pypython -m wppm -diff WinPythonslim-64bit-3.13.5.0.md WinPythonslim-64bit-3.14.7.0.md该命令接受任意两个索引文档不要求相邻版本、不要求同一 flavor比较方向由参数顺序决定内部调用 compare_files()支持三种模式模式说明full对比 Tools、Python packages、WheelHouse packages 全部区块section只对比指定的某一区块header1/header2指定pairs按给定的区块对逐一对比文件读取时使用 utils.guess_encoding() 自动探测编码兼容仓库内新旧 changelog早期.txt与后期.md并存。你可以用它验证本文档内容例如python -m wppm -diff changelogs/WinPython-64bit-3.11.0.1.md changelogs/WinPython-64bit-3.11.3.0.md输出将复现本 History 文档中的 New / Upgraded / Removed 三类清单。五、3.11.3.0 版本的技术要点与升级建议综合上面的清单可以从几个维度总结本次版本的特点Python 3.11.3 补丁基线CPython 自 3.11.0 升级到 3.11.3属于 3.11 稳定线上的安全与缺陷修复版本同时tomli被移除正是利用了 3.11 标准库内置tomllib的事实构建脚本 build_winpython_meta.py 也注明stdlib since 3.11。深度学习栈的一次性补强PyTorch 2.0.1 全家桶torch/torchvision/torchaudio、transformers、accelerate、fastai、numba llvmlite 同时就位3.11.3.0 开箱即可跑主流深度学习训练与推理流程。Jupyter 生态向协作与新一代协议演进jupyter_server 2.x、jupyter_client 8.x、jupyter_core 5.x 集体跨大版本新增基于 Y-CRDT 的 ydoc/ypy 协作栈用 jupyterlab_rise 取代 rise 承担幻灯片功能。可视化与地理空间能力增强bokeh 3.x、panel 1.x 跨大版本升级cartopy、geoviews、datashader、spatialpandas、pyproj、shapely 2.0 补齐了地理数据从读取到渲染的整条链路。优化与贝叶斯计算完整覆盖cvxpy 多求解器ecos/osqp/scs/qdldl/quadprog、pymc pytensor、pyro、arviz 构成从凸优化到贝叶斯推断的完整工具链。升级建议如果你正在使用 3.11.0.1 及更早版本升级到 3.11.3.0 可获得以上全部新增与修复如果不需要 bokeh 3.x / panel 1.x / shapely 2.0 等跨大版本带来的 API 变化可先查阅对应包的迁移说明再升级。六、延伸阅读本版本的完整包索引含全部包的版本与描述WinPython-64bit-3.11.3.0.mdHistory 生成与对比实现wppm/diff.py构建流水线中生成 changelog 的 Step 7winpython/build_winpython.pychangelog 文件选择与命名的测试约束tests/test_changelog_files.py版本回退选择逻辑的测试tests/test_diff_versions.pyWPPM 命令行入口-diff参数wppm/wppm.pyWinPython 构建工具链与 WPPM 的整体说明README.rst赞分享开发工具构建工具CLI包管理器【免费下载链接】winpythonA free Python-distribution for Windows platform, including prebuilt packages for Scientific Python.项目地址https://gitcode.com/gh_mirrors/wi/winpython点击查看免费下载相关推荐WinPython Slim 3.5.1.1 版本解析变更历史、新增包清单与 Changelog 生成机制WinPython Slim 3.5.1.1 版本解析变更历史、新增包清单与 Changelog 生成机制 WinPython 是一款面向 Windows 平开发工具构建工具CLI包管理器WinPython 3.4.3.1 变更历史深度解读从包清单到 changelog 生成机制WinPython 3.4.3.1 变更历史深度解读从包清单到 changelog 生成机制 本篇技术指南以 WinPython 开源仓库中 changelo开发工具构建工具CLI包管理器深入解析 Remote In Tech 目录中的 Chroma 公司档案全远程 UI 组件测试团队的数据与工作流深入解析 Remote In Tech 目录中的 Chroma 公司档案全远程 UI 组件测试团队的数据与工作流 导读 Chroma 是远程技术公司目录Re开发工具构建工具CLI包管理器上一篇WSL终极指南快速掌握Windows Linux子系统的高效用法下一篇Qwen1.5-1.8B-Chat-GPTQ-Int8社区贡献指南参与开源项目的完整教程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?