- 开发工具
- 构建工具
- CLI
- 包管理器
【免费下载链接】winpython
A free Python-distribution for Windows platform, including prebuilt packages for Scientific Python.
WinPython 3.11.3.1 是面向 Windows 平台的便携式 Python 发行版,随附 Python 3.11.3 运行时、Node.js 等独立工具以及约 600 个预编译 Python 包,覆盖科学计算、机器学习、Web 开发、Jupyter 生态等主流领域。本篇以官方 changelog 文档为骨架,逐层拆解该版本的工具与包构成,并深入仓库源码揭示这份包索引的自动生成、版本比对与归档机制,帮助读者既会用、也能读懂 WinPython 发行版的"体检报告"。
版本总览:3.11.3.1 是什么
WinPython-64bit-3.11.3.1是一个 64 位 WinPython 发行版的包索引文档,位于 changelogs/WinPython-64bit-3.11.3.1.md。它回答了一个核心问题:这个发行版里到底装了哪些东西、各是什么版本。
文档正文以两个 Markdown 表格清单构成:
- Tools(独立工具):3 项,均为非 Python 的外部工具;
- Python packages(Python 包):以 Python 3.11.3 本体为首,共约 630 个预编译包,每条记录含包名、版本号、一行描述。
与之配套的 changelogs/WinPython-64bit-3.11.3.1_History.md 则记录了该版本相对上一版 3.11.3.0 的变更:toolz由 0.11.2 升级到 0.12.0,winpython(发行版自带工具集,含 WPPM)由 6.1.20230518 升级到 6.1.20230527。也就是说,3.11.3.1 是一次以"随发行版工具链更新"为主的维护性发布。
说明:WinPython 是一个面向 Windows 的便携式 Python 发行版(详见 README.rst),本仓库托管的是其工具链与构建体系(含 WPPM 包管理器),changelog 目录则是每个构建产出的"发行版包索引"档案。
随附工具(Tools):Node.js、npm 与 Pandoc
| 名称 | 版本 | 说明 |
|---|---|---|
| Nodejs | v18.16.0 | 基于 Chrome V8 引擎的 JavaScript 运行时 |
| npmjs | 9.5.1 | JavaScript 包管理器 |
| Pandoc | 2.3 | 通用文档格式转换器 |
这三项工具并非 Python 包,而是随发行版一起打包的独立可执行程序。它们的实战价值在于:
- Node.js + npm:支撑 JupyterLab、ipywidgets 等前端组件生态,以及前端构建类工作流;
- Pandoc:与
pypandoc、nbconvert配合,可在 Markdown / reStructuredText / HTML / PDF 等格式之间转换文档,是科学写作与 notebook 导出链路上的关键一环。
从源码看,工具清单与 Python 包清单在生成时被分门别类地收集。在 wppm/wppm.py 的get_package_index_data中,返回的数据结构显式分为tools、packages、wheelhouse三组记录;wppm/diff.py 也定义了### Tools、### Python packages、### WheelHouse packages三类分区头。这解释了为什么 changelog 文档严格按"工具 / Python 包"分区排版。
Python 运行时与核心科学计算栈
Python 3.11.3 本体
| 名称 | 版本 | 说明 |
|---|---|---|
| Python | 3.11.3 | Python 编程语言及标准库 |
| pip | 23.1.2 | PyPA 推荐的包安装工具 |
| setuptools | 67.7.2 | 包构建/分发基础设施 |
| wheel | 0.40.0 | Python 内置包格式 |
| virtualenv | 20.19.0 | 虚拟环境构建器 |
| winpython | 6.1.20230527 | WinPython 发行版工具,含 WPPM |
winpython包本身也随发行版分发——这正是 README.rst 提到的 WinPython Package Manager(WPPM),用于浏览已安装包、从随附 Wheelhouse 安装包或注册 WinPython。
数值计算与数据处理
| 名称 | 版本 | 说明 |
|---|---|---|
| numpy | 1.24.2 | Python 数组计算基础库 |
| scipy | 1.10.1 | 科学计算库 |
| numexpr | 2.8.4 | 快速数值表达式求值器 |
| bottleneck | 1.3.4 | 用 C 实现的快速 NumPy 数组函数 |
| numba | 0.57.0 | 基于 LLVM 的 Python 编译加速 |
| llvmlite | 0.40.0 | LLVM 轻量封装 |
| cython | 0.29.34 | 编写 C 扩展的编译器 |
| sympy | 1.12 | 计算机代数系统(CAS) |
| mpmath | 1.2.1 | 任意精度浮点运算 |
| gmpy2 | 2.1.5 | GMP/MPFR/MPC 接口 |
| networkx | 3.1 | 图与网络构建、操作 |
| dask | 2023.5.0 | 并行 PyData 任务调度 |
| distributed | 2023.5.0 | Dask 分布式调度器 |
| dask_ml / dask_image / dask_glm / dask_searchcv | 2023.3.24 / 2023.3.0 / 0.2.0 / 0.2.0 | Dask 的 ML、图像、GLM、超参搜索扩展 |
| toolz | 0.12.0 | 函数式数据处理工具(本次升级项) |
| cytoolz | 0.12.1 | toolz 的 Cython 实现 |
| xarray | 2023.4.2 | 带标签的 N 维数组 |
| pint | 0.19.2 | 物理量模块 |
| uncertainties | 3.1.6 | 误差传播计算 |
数据存储与格式
| 名称 | 版本 | 说明 |
|---|---|---|
| h5py | 3.7.0 | HDF5 文件读写 |
| tables (PyTables) | 3.7.0 | 层次化数据集 |
| h5netcdf | 1.1.0 | 基于 h5py 的 netCDF4 访问 |
| netcdf4 | 1.6.0 | netCDF4 库的面向对象接口 |
| pyhdf | 0.10.5 | NCSA HDF4 库接口 |
| zarr | 2.11.3 | 分块、压缩的 N 维数组 |
| numcodecs | 0.10.0 | 缓冲压缩/变换编解码器 |
| blosc | 1.10.6 | Blosc 数据压缩器 |
| lz4 / cramjam / python_snappy / zstandard / brotli | 4.3.2 / 2.6.2 / 0.6.1 / 0.20.0 / 1.0.9 | 各类高性能压缩绑定 |
| pyarrow | 12.0.0 | Apache Arrow 的 Python 库 |
| fastparquet | 2023.4.0 | Parquet 格式支持 |
| polars | 0.17.11 | 高性能 DataFrame 库 |
| duckdb | 0.8.0 | DuckDB 嵌入式数据库 |
| openpyxl | 3.0.10 | Excel xlsx/xlsm 读写 |
| xlsxwriter | 3.0.3 | 创建 Excel XLSX 文件 |
| xlwings | 0.24.7 | Python 与 Excel 互操作 |
机器学习与深度学习栈
经典机器学习
| 名称 | 版本 | 说明 |
|---|---|---|
| pandas | 1.5.2 | 数据分析/时间序列数据结构 |
| scikit_learn | 1.2.2 | 机器学习与数据挖掘模块集 |
| statsmodels | 0.14.0 | 统计计算与模型 |
| imbalanced_learn | 0.10.1 | 不平衡数据集工具箱 |
| mlxtend | 0.22.0 | 机器学习库扩展 |
| scikit_optimize | 0.9.0 | 序贯模型优化(贝叶斯优化) |
| scikit_image | 0.20.0 | 图像处理例程 |
| umap_learn | 0.5.1 | 均匀流形近似与投影(UMAP) |
| pynndescent | 0.5.7 | 最近邻下降 |
| xgboost | 1.6.1 | XGBoost Python 包 |
| pmdarima | 2.0.2 | 时间序列 ARIMA 自动建模 |
| swifter | 1.3.4 | 快速应用函数到 DataFrame |
| missingno | 0.5.1 | 缺失数据可视化 |
| dirty_cat | 0.4.1 | 脏类别机器学习 |
| sklearn_contrib_lightning | 0.6.2.post0 | 大规模稀疏线性分类/回归/排序 |
深度学习与 AI 框架
| 名称 | 版本 | 说明 |
|---|---|---|
| torch | 2.0.1 | PyTorch 张量与动态神经网络(GPU 加速) |
| torchvision | 0.15.2 | 图像/视频数据集与模型 |
| torchaudio | 2.0.2 | PyTorch 音频包 |
| transformers | 4.29.1 | 面向 JAX/PyTorch/TensorFlow 的 SOTA 机器学习 |
| accelerate | 0.19.0 | Hugging Face 分布式训练加速 |
| tokenizers | 0.13.3 | 快速可定制分词器 |
| huggingface_hub | 0.14.1 | HF Hub 模型/数据集客户端 |
| fastai | 2.7.12 | 基于 PyTorch 的深度学习库 |
| fastcore / fastdownload / fastprogress | 1.5.11 / 0.0.7 / 1.0.3 | fastai 配套工具 |
| botorch | 0.8.5 | PyTorch 贝叶斯优化 |
| gpytorch | 1.10 | PyTorch 高斯过程 |
| linear_operator | 0.4.0 | 线性算子实现 |
| pyro_ppl / pyro_api | 1.8.4 / 0.1.2 | 深度概率编程 |
| pymc | 5.3.0 | 马尔可夫链蒙特卡洛(MCMC)采样 |
| pytensor | 2.11.2 | 数学表达式优化编译器 |
| openai | 0.27.5 | OpenAI API 客户端 |
| pygad | 2.17.0 | 遗传算法库(Keras/PyTorch) |
自然语言处理
| 名称 | 版本 | 说明 |
|---|---|---|
| spacy | 3.5.2 | 工业级 NLP |
| thinc | 8.1.9 | 面向 NLP 的实用机器学习 |
| nltk | 3.7 | 自然语言工具包 |
| textdistance | 4.5.0 | 文本距离计算 |
| jellyfish | 0.11.2 | 近似/拼音匹配 |
| fuzzywuzzy | 0.18.0 | 模糊字符串匹配 |
| wordcloud | 1.8.1 | 词云生成器 |
| spacy_legacy / spacy_loggers | 3.0.12 / 1.0.3 | spaCy 兼容与日志 |
| catalogue / confection / preshed / cymem / murmurhash / wasabi / srsly | 2.0.8 / 0.0.3 / 3.0.8 / 2.0.7 / 1.0.9 / 0.10.1 / 2.4.5 | spaCy/thinc 底层基础设施 |
数据可视化与交互应用
| 名称 | 版本 | 说明 |
|---|---|---|
| matplotlib | 3.7.1 | Python 绘图包 |
| seaborn | 0.13.0.dev0 | 统计数据可视化 |
| plotly | 5.13.1 | 开源交互式绘图库 |
| bokeh | 3.1.1 | 浏览器端交互式绘图与应用 |
| altair | 4.2.2 | 声明式统计可视化 |
| altair_data_server / altair_transform | 0.4.1 / 0.2.0 | Altair 后台数据服务器与变换引擎 |
| holoviews | 1.16.0 | 数据标注式可视化 |
| hvplot | 0.8.3 | 基于 HoloViews 的高层绘图 API |
| panel | 1.0.2 | 高层应用与仪表盘方案 |
| datashader | 0.14.5a1+g7a97e97.dirty | 基于网格聚合的可视化工具链 |
| bqplot | 0.12.39 | 基于 d3.js 的 Jupyter 交互绘图 |
| plotnine | 0.12.1 | Python 图形语法 |
| streamlit | 1.22.0 | 快速构建数据应用 |
| pyqtgraph | 0.13.3 | 科学图形与 GUI 库 |
| pythonqwt / guiqwt | 0.10.2 / 4.3.3 | Qt 曲线/图像绘图 |
| mpld3 / mpl_scatter_density / mpldatacursor | 0.5.8 / 0.7 / 0.7.1 | Matplotlib 的 D3 视图、密度散点与数据游标 |
| folium | 0.13.0 | Leaflet.js 地图 |
| ipympl | 0.9.3 | Matplotlib Jupyter 扩展 |
地理空间(GIS)与地球科学
| 名称 | 版本 | 说明 |
|---|---|---|
| geopandas | 0.13.0 | 地理 pandas 扩展 |
| shapely | 2.0.1 | 几何对象、谓词与运算 |
| fiona | 1.8.21 | 空间数据文件读写 |
| pyproj | 3.4.1 | PROJ 坐标变换接口 |
| cartopy | 0.21.1 | 制图库(支持 Matplotlib 可视化) |
| rasterio | 1.2.10 | 快速栅格 I/O |
| gdal | 3.4.3 | 地理空间数据抽象库 |
| geopy | 2.2.0 | Python 地理编码工具箱 |
| geoviews | 1.10.0a2.post4+g65df916 | 地理/气象/海洋数据可视化 |
| spatialpandas | 0.4.7 | 空间/几何运算的 pandas 扩展数组 |
| pyshp | 2.3.0 | ESRI Shapefile 读写 |
| rtree | 1.0.0 | 空间索引 |
| pyepsg | 0.4.0 | EPSG 数据库访问 |
| mercantile | 1.2.1 | Web Mercator XYZ 瓦片工具 |
| branca | 0.5.0 | 用 Python 生成复杂 HTML+JS 页面 |
| xyzservices | 2022.6.0 | XYZ 瓦片服务源 |
| astropy | 5.1.1 | 社区天文工具 |
| astroml | 1.0.2.post1 | 天文学机器学习工具 |
| emcee | 3.1.2 | MCMC 系综采样工具包 |
| arviz | 0.15.1 | 贝叶斯模型探索性分析 |
| pyerfa | 2.0.0.1 | ERFA 绑定 |
| cftime | 1.6.0 | netcdf4-python 的时间处理 |
Web 开发、数据库与异步生态
Web 框架与 HTTP
| 名称 | 版本 | 说明 |
|---|---|---|
| django | 4.1.2 | 高级 Python Web 框架 |
| flask | 2.2.2 | 简单 Web 应用框架 |
| flask_sqlalchemy / flask_restx / flask_mail / flask_session / flask_accepts | 2.5.1 / 0.5.1 / 0.9.1 / 0.4.0 / 0.18.4 | Flask 扩展全家桶 |
| fastapi | 0.95.1 | 高性能、易学易用的 Web 框架 |
| starlette | 0.26.1 | 轻量 ASGI 库 |
| uvicorn | 0.20.0 | 高性能 ASGI 服务器 |
| quart | 0.18.3 | 与 Flask 同 API 的 ASGI 微框架 |
| hypercorn | 0.14.3 | 基于 Hyper 的 ASGI 服务器 |
| tornado | 6.3.1 | Web 框架与异步网络库 |
| waitress | 2.1.2 | WSGI 服务器 |
| aiohttp | 3.8.3 | asyncio 异步 HTTP 客户端/服务端框架 |
| httpx | 0.23.0 | 新一代 HTTP 客户端 |
| requests | 2.28.1 | HTTP 库 |
| httpie | 3.2.1 | 面向人类的 HTTP 命令行工具 |
| dash | 2.8.1 | Plotly 开发的反应式 Web 应用框架 |
数据库与 ORM
| 名称 | 版本 | 说明 |
|---|---|---|
| sqlalchemy | 1.4.47 | 数据库抽象库 |
| alembic | 1.8.0 | SQLAlchemy 数据库迁移工具 |
| databases | 0.5.5 | Python 异步数据库支持 |
| redis | 4.3.1 | Redis 键值存储客户端 |
| pymongo | 4.3.3 | MongoDB 驱动 |
| mysql_connector_python | 8.0.21 | MySQL 驱动 |
| pg8000 | 1.23.0 | PostgreSQL 接口库 |
| pyodbc | 4.0.35 | ODBC DB-API 模块 |
| adodbapi | 2.6.1.3 | 基于 Microsoft ADO 的 PEP 249 DB-API 实现 |
| datasette | 0.64.3 | 数据探索与发布工具 |
| datasette_graphql | 2.1.1 | SQLite 自动 GraphQL API |
| csvs_to_sqlite | 1.3.1a0 | CSV 转 SQLite |
| sqlite_bro / sqlite_utils / sqlite_fts4 | 0.12.2 / 3.31 / 1.0.3 | SQLite 客户端与工具 |
| db.py | 0.5.4b1 | 易用的数据库包 |
异步与并发
| 名称 | 版本 | 说明 |
|---|---|---|
| anyio | 3.6.2 | 多事件循环兼容层 |
| trio | 0.22.0 | 友好的异步并发库 |
| trio_asyncio | 0.12.0 | 基于 Trio 的 asyncio 主循环 |
| sniffio | 1.2.0 | 检测当前异步库 |
| greenlet | 2.0.2 | 轻量进程内并发 |
| janus | 1.0.0 | 同步异步混合队列 |
| aiofiles / aiosqlite | 22.1.0 / 0.17.0 | asyncio 文件与 sqlite3 桥接 |
| async_generator / async_timeout | 1.10 / 4.0.2 | 异步生成器与超时上下文 |
| h11 / h2 / hpack / hyperframe / wsproto | 0.12.0 / 4.1.0 / 4.0.0 / 6.0.1 / 1.2.0 | HTTP/1.1、HTTP/2、WebSocket 协议实现 |
| pyzmq | 25.0.2 | 0MQ 绑定 |
| cloudpickle | 2.1.0 | Python 对象扩展序列化 |
| loky | 3.4.0 | 健壮的 ProcessPoolExecutor 实现 |
| tblib | 1.7.0 | 回溯序列化 |
| threadpoolctl | 3.1.0 | 线程池控制 |
Jupyter 交互计算生态
| 名称 | 版本 | 说明 |
|---|---|---|
| jupyter | 1.0.0 | Jupyter 元包 |
| jupyterlab | 3.6.3 | JupyterLab 笔记本服务器扩展 |
| notebook | 6.5.4 | 基于 Web 的交互计算环境 |
| ipython | 8.13.1 | 高效交互式计算 |
| ipykernel | 6.22.0 | IPython 内核 |
| ipywidgets | 8.0.6 | Jupyter HTML 控件 |
| widgetsnbextension | 4.0.7 | JupyterLab HTML 控件扩展 |
| qtconsole | 5.4.3 | Jupyter Qt 控制台 |
| nbconvert | 6.5.0 | notebook 转换 |
| nbformat / nbclient | 5.7.0 / 0.7.4 | notebook 格式与执行客户端 |
| papermill | 2.4.0 | notebook 参数化与执行 |
| nbdime | 3.1.1 | notebook 差异与合并 |
| nbval | 0.9.6 | notebook 验证的 pytest 插件 |
| jupyter_console | 6.4.4 | 终端控制台 |
| jupyter_client / jupyter_core / jupyter_server | 8.2.0 / 5.3.0 / 2.5.0 | Jupyter 协议、核心与服务 |
| jupyterlab_server | 2.22.1 | JupyterLab 服务器 |
| metakernel | 0.28.2 | Jupyter 元内核 |
| octave_kernel | 0.34.1 | Octave Jupyter 内核 |
| ipython_sql | 0.4.1b1 | 通过 IPython 访问关系型数据库 |
| ipycanvas / ipydatagrid / ipyleaflet / jupyter_bokeh | 0.13.1 / 1.1.15 / 0.17.2 / 3.0.7 | Jupyter 交互控件 |
| jupyterlab_rise | 0.2.0 | Reveal.js 幻灯片扩展 |
| terminado / pywinpty | 0.17.0 / 2.0.9 | 终端服务 |
| nest_asyncio | 1.5.6 | 嵌套事件循环补丁 |
| ptpython | 3.0.20 | 基于 prompt_toolkit 的 REPL |
开发工程与质量工具
| 名称 | 版本 | 说明 |
|---|---|---|
| pytest | 7.2.1 | 简单强大的测试框架 |
| hypothesis | 6.56.2 | 属性测试 |
| coverage | 6.5.0 | 代码覆盖率 |
| mypy | 1.3.0 | 可选静态类型检查 |
| pylint | 2.15.4 | Python 静态检查器 |
| flake8 | 5.0.4 | 模块化源码检查器 |
| black | 23.3.0 | 不妥协的代码格式化器 |
| isort | 5.10.1 | 导入排序 |
| autopep8 / yapf / pycodestyle / pyflakes / pydocstyle | 1.7.0 / 0.32.0 / 2.9.1 / 2.5.0 / 6.3.0 | 代码风格工具集 |
| rope | 1.6.0 | 重构库 |
| cookiecutter | 2.1.1 | 项目模板脚手架 |
| build | 0.10.0 | 简单正确的构建前端 |
| flit / flit_core | 3.8.0 | 简单打包工具 |
| twine | 4.0.1 | PyPI 发布工具 |
| maturin | 0.14.15 | Rust 与 pyo3/cffi 打包发布 |
| pybind11 | 2.10.3 | C++11 与 Python 无缝互操作 |
| gitpython | 3.1.29 | Python Git 库 |
| snakeviz | 2.1.0 | 基于 Web 的分析器查看器 |
| pympler | 1.0.1 | 内存行为度量工具 |
| rich | 12.4.4 | 终端富文本渲染 |
| tqdm | 4.64.0 | 快速可扩展进度条 |
| watchdog | 2.2.0 | 文件系统事件监控 |
| tenacity / retrying | 8.1.0 / 1.3.4 | 重试机制 |
| click / typer | 8.1.3 / 0.7.0 | 命令行工具包 |
| pyinstaller?(未包含) | — | 打包工具需另行安装 |
GUI 与桌面科学计算
| 名称 | 版本 | 说明 |
|---|---|---|
| pyqt5 | 5.15.6 | Qt 跨平台应用工具包绑定 |
| pyqtwebengine | 5.15.5 | Qt WebEngine 绑定 |
| pyqt5_sip / pyqt5_qt5 | 12.11.0 / 5.15.2 | PyQt5 支撑组件 |
| pyqtgraph / pythonqwt / guiqwt | 0.13.3 / 0.10.2 / 4.3.3 | 科学图形 GUI |
| spyder | 5.4.3 | 科学 Python 开发环境(IDE) |
| spyder_kernels | 2.4.3 | Spyder 控制台内核 |
| pyzo | 4.12.7 | 科学计算 Python IDE |
| qdarkstyle / qtawesome / qstylizer | 3.1 / 1.2.3 / 0.2.2 | Qt 样式与图标 |
| guidata / formlayout | 2.3.1 / 1.2.1a1 | Qt 表单自动生成 |
| pywin32 | 305 | Windows 扩展 |
| pythonnet | 3.0.1 | .NET/Mono 集成 |
| pygame | 2.1.2 | 游戏开发 |
| pyopengl | 3.1.6 | OpenGL 绑定 |
| pyaudio / sounddevice | 0.2.11 / 0.4.4 | 音频输入输出 |
| imageio / imageio_ffmpeg | 2.28.1 / 0.4.2 | 图像/视频读写 |
| moviepy | 1.0.3 | 视频编辑 |
| pims | 0.6.1 | Python 图像序列 |
| pyserial | 3.5 | 串口扩展 |
| pywinusb | 0.4.2 | USB/HID 通信 |
安全、认证与常用工具库
| 名称 | 版本 | 说明 |
|---|---|---|
| cryptography | 37.0.4 | 密码学算法库 |
| bcrypt | 3.2.0 | 现代密码哈希 |
| pynacl | 1.5.0 | NaCl 密码库绑定 |
| pyjwt | 2.4.0 | JSON Web Token |
| msal / msal_extensions | 1.22.0 / 1.0.0 | Microsoft 身份认证库 |
| keyring | 23.13.1 | 密码安全存储 |
| paramiko | 2.8.0 | SSH2 协议库 |
| ntlm_auth / requests_ntlm | 1.5.0 / 1.1.0 | NTLM 认证 |
| certifi | 2022.9.24 | Mozilla CA 证书包 |
| cffi | 1.15.0 | C 语言调用接口 |
| pycparser | 2.21 | C 解析器 |
| lxml | 4.9.0 | 强大的 XML 处理 |
| beautifulsoup4 | 4.11.1 | 屏幕抓取库 |
| defusedxml | 0.7.1 | XML 炸弹防护 |
| bleach | 5.0.0 | HTML 消毒 |
| markdown / mistune / markdown_it_py | 3.3.7 / 0.8.4 / 2.2.0 | Markdown 解析 |
| sphinx | 6.1.3 | 文档生成工具 |
| sphinx_rtd_theme / alabaster / numpydoc | 1.2.0 / 0.7.12 / 1.3 | Sphinx 主题与扩展 |
| pygments | 2.15.1 | 语法高亮 |
| ujson / orjson / simplejson | 5.3.0 / 3.7.3 / 3.17.6 | JSON 编解码 |
| msgpack | 1.0.4 | MessagePack 序列化 |
| toml / tomlkit / tomli_w | 0.10.2 / 0.11.6 / 1.0.0 | TOML 解析与写出 |
| pyyaml / ruamel.yaml | 6.0 / 0.17.21 | YAML 解析 |
| jsonschema / fastjsonschema | 4.17.3 / 2.16.2 | JSON Schema 校验 |
| pytz / tzdata / tzlocal | 2022.4 / 2022.7 / 4.2 | 时区处理 |
| python_dateutil / arrow / dateparser | 2.8.2 / 1.2.2 / 1.1.0 | 日期时间处理 |
| babel | 2.10.3 | 国际化工具 |
changelog 文档的格式规范:它是"机器可读"的
这份包索引不只是给人看的,其结构经过精心设计,可以被仓库的 diff 工具直接解析。从 wppm/wppm.py 的generate_package_index_markdown可以看到标准模板:
## WinPython 3.11.3.1 The following packages are included in WinPython-64bit v3.11.3.1 . ### Tools Name | Version | Description -----|---------|------------ [Nodejs](https://nodejs.org) | v18.16.0 | ... ### Python packages Name | Version | Description -----|---------|------------ [Python](http://www.python.org/) | 3.11.3 | ...解析端在 wppm/diff.py:Package类用正则\[([\w\-\:\/\.\_]+)\]\(([^)]+)\) \| ([^\|]*) \| ([^\|]*)匹配每一行"名称链接 | 版本 | 描述";PackageIndex类识别### Tools、### Python packages、### WheelHouse packages三个分区头,并跳过表头、分隔行与<details>等装饰行。文件名WinPython-64bit-3.11.3.1.md的命名规则在 winpython/build_winpython.py 中由WinPython{flavor}-{arch}bit-{version}.md拼出,其中版本号可携带b1、rc1等 release level(PEP 440 版本),保证 beta 与正式版的索引不会互相覆盖。
这份 changelog 是怎么生成的:构建管线 Step 7
在 winpython/build_winpython.py 的构建流程中,第 7 步专门负责生成 changelog,实际调用链为:
- 调用
wppm.Distribution().generate_package_index_markdown(),枚举发行版内安装的工具与 Python 包(含 wheelhouse),渲染成上文的标准 Markdown 包索引; - 将生成的
WinPython{flavor}-{arch}bit-{version}.md复制到changelogs/目录归档; - 调用
wppm.diff.compare_package_indexes(version, searchdir=changelogs_dir, flavor, arch)生成_History.md——它从changelogs/中定位上一个版本(wppm/diff.py 的find_previous_version依据文件名解析 PEP 440 版本并取"最近的更早版本"),逐分区比对两版包索引,输出新增/升级/移除三类变更。
这也是 changelogs/WinPython-64bit-3.11.3.1_History.md 中toolz 0.11.2 → 0.12.0、winpython 6.1.20230518 → 6.1.20230527这两条"Upgraded packages"的来源——compare_packages会按-/_归一化包名并对比版本号(wppm/diff.py)。
值得注意的细节:对于 2026 周期起的新构建,仓库策略已调整为不再把_History.md归档进changelogs/——相关注释与 tests/test_changelog_files.py 明确说明,历史文件对比的是"相邻上一版",但发行版 flavor 时常增减、用户大约每年才升级一次,这种固定链式对比价值有限;需要对比时,读者应自己用wppm -diff挑选两个索引。这也解释了为何历史较新的 changelog 目录里只有.md索引文件。
如何自己读取与对比包索引
随发行版分发的winpython包(即 WPPM)提供了两条直接可用的命令(见 wppm/wppm.py 的参数定义):
# 以 Markdown 形式输出当前安装的包索引(相当于在本地重新生成一份 changelog) wppm -md # 对比两个包索引文件,输出新增/升级/移除 wppm -diff WinPython-64bit-3.11.3.0.md WinPython-64bit-3.11.3.1.mdwppm -md走的就是与构建管线相同的generate_package_index_markdown;-diff支持full(全分区)、section(指定分区)与pairs(分区配对)三种模式(wppm/diff.py)。此外wppm -ls pand可按表达式列出已安装包,wppm -lsa pandas -l1可查看包依赖细节。
若只想按 WinPython 发行版等同的 wheel 集合安装包,README.rst 提供了基于 hash 校验的安装方式:pip install --require-hashes配合随版本发布的requir.*.txt文件即可。
小结
- 3.11.3.1 的内容构成:Python 3.11.3 + Node.js v18.16.0/npm 9.5.1/Pandoc 2.3 三项工具 + 约 600 个预编译 Python 包,覆盖 numpy/scipy/pandas 科学计算栈、PyTorch 2.0.1 深度学习栈、Jupyter 生态、Web/数据库/异步库与地理科学工具。
- 相对 3.11.3.0 的变更:
toolz与winpython(发行版工具集)两个包升级,是一次维护性发布。 - 格式与机制:changelog 是"结构化、可解析"的包索引,由构建管线 Step 7 自动生成并归档,版本命名遵循 PEP 440 语义,历史差异由
wppm/diff按"最近的更早版本"自动比对产生。
读者可基于 changelogs/WinPython-64bit-3.11.3.1.md 直接核对任何包是否包含及具体版本;深入 wppm/wppm.py、wppm/diff.py 与 winpython/build_winpython.py 则可完全掌握索引生成与比对的实现原理。
- 开发工具
- 构建工具
- CLI
- 包管理器
【免费下载链接】winpython
A free Python-distribution for Windows platform, including prebuilt packages for Scientific Python.
相关推荐
WinPython 3.3.5.8 发行版全解析:随附工具、Python 包清单与索引/变更记录的生成机制
WinPython 3.3.5.8 发行版全解析:随附工具、Python 包清单与索引/变更记录的生成机制 本指南以仓库中 WinPython 3.3.5.8.
开发工具构建工具CLI包管理器Vue Flow 插槽(Slots)定制指南:默认插槽、连接线与 Zoom Pane 详解
Vue Flow 插槽(Slots)定制指南:默认插槽、连接线与 Zoom Pane 详解 Vue Flow(Vue 3 流程图组件库)通过一套精密的插槽(Sl
开发工具构建工具CLI包管理器awesome-low-level-design 仓库 C++ 咖啡自动售货机(Coffee Vending Machine)设计与实现深度解析
awesome low level design 仓库 C++ 咖啡自动售货机(Coffee Vending Machine)设计与实现深度解析 本篇文章基于
开发工具构建工具CLI包管理器
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考