☰
WinPython 3.13.13.0slim 发布包解析:Windows 64 位精简版科学计算发行版的组件清单与构建体系
2026/10/17 1:46:59 网站建设 项目流程
  • 开发工具
  • 构建工具
  • CLI
  • 包管理器

【免费下载链接】winpython

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

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

WinPython 是面向 Windows 平台的便携式 Python 发行版,其slim变体(slim flavor)在保留科学计算与数据开发生态的同时,刻意裁剪体积与冗余组件。本文以仓库中的发布索引 changelogs/WinPythonslim-64bit-3.13.13.0.md 为主体,逐项解读该版本内置的 Tools 与 Python 包清单,并深入winpython_builds.toml、requirements_slim.txt与wppm工具链,说明slim发行版是如何被定义、构建与核验的。读完本文,你将能够依据这份清单评估 3.13.13.0slim 是否满足自己的数据分析、Web 开发或 AI 工程需求,并掌握在仓库内比较任意两个发行版索引的方法。

一、版本索引:一份可解析的机器清单

WinPythonslim-64bit-3.13.13.0.md是一份典型的包索引(package index)文件,全文只有三个部分:Tools、Python packages与WheelHouse packages。每个部分都是一张Name | Version | Description三列表格,没有任何叙述性文字。

仓库把这类文件当作结构化元数据处理,而不是给人逐行阅读的公告。测试 tests/test_changelog_files.py 与归档脚本 .github/scripts/changelog_files.py 中的解析器使用正则^WinPython(?P<flavor>[A-Za-z0-9]*)-(?P<arch>\d+)bit-(?P<version>.+)\.md$从文件名提取三元组(flavor, architecture, version),因此:

  • slim是 flavor(风味/变体名),64是架构,3.13.13.0是版本号;
  • 文件名可带b1、b2等 release level 后缀,如WinPythonslim-64bit-3.13.15.1b2.md,解析器依赖packaging的version.parse校验尾部是合法版本号,否则拒绝该文件;
  • hashes_<version>.md、pylock.*.toml、requir.*.txt等伴随文件不属于索引,不会被归档进changelogs/。

该文件名解析规则与版本、flavor、架构一一对应,是理解整个 changelogs 目录(数百个历史索引)的钥匙。

二、内置 Tools:Python 3.13.13 与 Pandoc 3.1.9

该版本的 Tools 段只有两项:

NameVersionDescription
Pandoc3.1.9an universal document converter
Python3.13.13Python programming language with standard library
  • Python 3.13.13:这是发行版的解释器本体,随标准库一起分发。它是 3.13 系列的补丁级更新,可在winpython_builds.toml的[pythons."313"]段中找到构建时的目标版本关联(python_target_release指向该系列的构建目标),说明 3.13 系列在 WinPython 中由builds = ["dot", "slim"]两个 flavor 承载。
  • Pandoc 3.1.9:通用文档转换器,服务于markitdown、pypandoc等包以及文档生态。slimflavor 在 winpython_builds.toml 中声明toolsdirs = "bdTools\\tools64_pandoc_alone",与slimf共用同一工具目录——"pandoc alone" 正是 slim 系列刻意精简的体现:除 Pandoc 外不再附带其他独立桌面工具。

三、Python packages:slim 到底装了什么

该索引的 Python packages 表包含约 500 项,是本文档的核心内容。它们并非随机堆砌,而是由 requirements_slim.txt 这一需求清单驱动生成的。该文件开头注释说明其生成过程:

# requirements_slim.txt, sorted, 2026-08-13 19:15:35 # 160 entries -> 112 kept, 48 already pulled in # 8 repeated, collapsed: brotli, openai, pympler, pytest, python-barcode, pywavelets, sympy, xlsxwriter

即:维护者显式列出 160 个条目,其中 48 个会被其它条目自动带入("already pulled in"),8 个重复项被折叠,最终保留 112 个直接声明项;剩余的大量包来自依赖解析(transitive dependencies)。文件末尾的注释块用#xxx # <- yyy形式记录了每个间接依赖的引入来源,例如:

#numpy # <- baresql, clarabel, cvxpy, dask, datashader, ... #pandas # <- baresql, dask, datashader, holoviews, hvplot, ... #matplotlib # <- ipympl, missingno, mlxtend, mpld3, plotnine, ... #pyzmq # <- jupyter, jupyterlab, papermill, spyder #scikit-learn # <- imbalanced-learn, mlxtend, prince, skrub, umap-learn

这意味着索引中的 numpy 2.4.4、pandas 3.0.2、matplotlib 3.10.9、scipy 1.17.1 等科学计算基石,全部是作为依赖被解析进来的,而非逐个手写。

3.1 科学计算与数据生态

  • 核心数组/数值:numpy 2.4.4、scipy 1.17.1、numba 0.65.1(LLVM 加速,其运行时 llvmlite 0.47.0 同步内置)、mpmath 1.3.0、sympy 1.14.0、uncertainties 3.2.3。
  • 数据分析:pandas 3.0.2、polars 1.40.1(含 polars-runtime-32)、duckdb 1.5.2、pyarrow 24.0.0、dask 2026.3.0(含 distributed 调度器)、xarray 2026.2.0、openpyxl 3.1.5、xlsxwriter 3.2.9、pydub、sounddevice/soundfile(音频)。
  • 机器学习/优化:scikit-learn 1.8.0、imbalanced-learn 0.14.1、skrub 0.8.0、mlxtend 0.23.4、keras 3.14.1、optuna 4.7.0、cvxpy 1.8.2 / cvxopt / osqp / clarabel / scs / highspy / pyomo(凸优化与数学规划)、deap 1.4.4(进化算法)、lmfit 1.3.3。
  • 统计/计量:statsmodels 0.14.6、quantecon 0.10.1、patsy、seaborn 0.13.2、plotnine 0.15.3、missingno。
  • 图像/信号:scikit-image 0.26.0、pillow 12.2.0、imageio 2.37.2、pywavelets 1.9.0、opencv-python(经依赖引入)。
  • 天文/地理:astropy 7.2.0(含 astropy-iers-data)、geopandas 1.1.2、shapely 2.1.2、pyproj 3.7.2、pyogrio、folium 0.20.0、ipyleaflet、pydeck、geopy。

3.2 AI 与大模型工程

slim 并非传统意义的"精简到只剩科学计算",它完整覆盖了现代 LLM 应用链路:

  • 模型运行时:onnxruntime 1.25.1(含 onnxruntime-genai 依赖)、tokenizers 0.22.2、tiktoken 0.12.0、huggingface-hub 1.14.0、hf-xet 1.4.3(HF 大文件加速传输)。
  • LLM SDK:openai 2.36.0、anthropic 0.100.0、mistralai 2.4.5、cohere 5.21.1、groq 1.2.0、google-genai 1.66.0。
  • Agent 框架:langchain 1.2.17、langchain-core 1.3.2、langgraph 1.1.10(含 checkpoint/prebuilt/sdk)、pydantic-ai-slim 1.12.0(含 a2a/anthropic/cli/cohere/evals/google/groq/mcp/openai/vertexai 等 extra)、mcp 1.25.0(Model Context Protocol SDK)、fasta2a 0.6.0(Agent → A2A server 转换)、logfire-api、langsmith。
  • 数据接入:duckdb、pyarrow、adbc-driver-manager 1.10.0(ADBC 驱动统一入口)、polars 等构成本地数据管道。

3.3 Web、数据库与异步

  • Web 框架:fastapi 0.136.1、flask 3.1.3、quart 0.20.0、django 6.0.2、streamlit 1.57.0、panel 1.8.10、gradio 类应用由 bokeh/plotly 支撑。
  • ASGI/WSGI:uvicorn 0.46.0、hypercorn 0.18.0、waitress 3.0.2、starlette 1.0.0、sse-starlette、asgi-csrf。
  • HTTP 客户端:httpx 0.28.1、requests 2.33.0、aiohttp 3.13.3、httpie 3.2.4。
  • 数据库驱动:psycopg2 2.9.11(PostgreSQL)、pg8000、mysql-connector-python 9.5.0、pymongo 4.15.3、redis 7.1.0、mssql-python 1.5.0、pyodbc 5.3.0、sqlalchemy 2.0.49 + alembic 1.17.2、sqlite-bro/sqlite-utils。
  • 异步基座:anyio 4.13.0、trio 0.33.0、asyncssh 2.22.0、aiosqlite、janus、nest-asyncio。

3.4 交互、IDE 与开发工具

  • Jupyter 全家桶:jupyterlab 4.5.7、notebook 7.5.6、ipykernel 6.31.0、ipywidgets 8.1.8、nbconvert/nbformat/nbclient、jupyter-lsp、papermill 2.7.0、ipython-sql。
  • 科学 IDE:spyder 6.1.4 + spyder-kernels 3.1.4,配套 pyls-spyder、python-lsp-server 1.14.0、qtconsole 5.7.2、qtpy、pyqt5 5.15.11 + pyqtwebengine、pyqtgraph 0.14.0、plotpy 2.9.0、qdarkstyle。
  • 代码质量:pytest 9.0.2、hypothesis 6.150.2、flake8 7.1.1、pylint 4.0.4、mypy 1.19.1、black 26.3.1、ruff 0.15.12、isort 7.0.0、autopep8、rope。
  • 打包与构建:pip 26.1.1、setuptools 82.0.1、wheel、build 1.4.2、flit 3.12.0、hatchling 1.29.0、maturin 1.13.1、twine 6.2.0、pybind11 3.0.1、cython 3.2.4、pipdeptree。

3.5 Windows 集成与桌面

  • pywin32 311(Windows API 绑定)、pywin32-ctypes、pywinpty 3.0.3、sspilib 0.5.0、pyspnego 0.12.0(Windows 协商认证)。
  • qrcode 8.2、python-barcode、pypdf 6.6.2、reportlab 4.4.9、python-dotenv、keyring、psutil、watchdog、pyusb、pyvisa 1.15.0(仪器控制)、pyserial 3.5(串口)。

3.6 值得注意的边界

  • WheelHouse packages 为空:本版索引第三段没有条目,意味着发行包体积已完全由 Tools + Python packages 决定,不附带额外的离线 wheel 仓库内容(wppm的-ws .默认指向Distribution.wheelhouse / 'included.wheels',见 wppm/wppm.py 相关逻辑,此处索引为空即无内置 wheelhouse)。
  • 被注释剔除的条目:requirements_slim.txt明确注释掉#httpie httpie-3.2.4 outdated and vulnerable(该版本过时且有漏洞)与#mistralai # mistralai get security problematic crpytography-47(依赖链存在安全问题),尽管 httpie、mistralai 在索引中仍以其它版本出现——这体现了需求清单维护时对安全性的主动约束。
  • 便携性定制:wppm 在安装后处理中对 pip 应用"movable launcher"补丁(修改 pip_vendor/distlib/scripts.py的 shebang 处理,见 wppm/wppm.py),这正是 WinPython "解压即用、目录可移动" 特性的实现机制之一。

四、从源码看 slim 是如何被"定义"的

winpython_builds.toml是仓库构建体系的核心配置文件,它明确给出了 flavor 的定义方式:

[flavors.slim] requirements = "requirements_slim.txt" source_dirs = "packages.win-amd64" toolsdirs = "bdTools\\tools64_pandoc_alone"

对比其它 flavor:

flavorrequirementssource_dirstoolsdirs定位
dotdot_requirements.txtpackages.win-amd64bdTools\Tools.dot默认/基础
dotfdot_requirements.txtpackages.win-amd64tbdTools\Tools.dot自由线程(free-threaded)变体
slimrequirements_slim.txtpackages.win-amd64bdTools\tools64_pandoc_alone精简(本文主题)
slimfrequirements_slimf.txtpackages.win-amd64tbdTools\tools64_pandoc_alone精简 + 自由线程

配置文件头注释揭示了完整派生关系:

basedir = {root_dir_for_builds}\bd{python} requirements = {basedir}\{flavor requirements} source_dirs = {basedir}\{flavor source_dirs} wheelhousereq = {basedir}\{flavor wheelhousereq} toolsdirs = {root_dir_for_builds}\{flavor toolsdirs}

即"一个 Python 小版本一个[pythons."3XX"]块,块内builds列出 flavor 名"。3.13 系列被定义为[pythons."313"]且builds = ["dot", "slim"],因此 3.13.13.0slim 正是该系列下slimflavor 的一次产出。

实际构建命令由 build_winpython_meta.py 解析,入口批处理 generate_a_winpython_distropy_meta.bat 转调该脚本,典型用法(配置头注释)为:

generate_a_winpython_distropy_meta.bat winpython_builds.toml 315:slim generate_a_winpython_distropy_meta.bat winpython_builds.toml 315 generate_a_winpython_distropy_meta.bat winpython_builds.toml generate_a_winpython_distropy_meta.bat winpython_builds.toml ... --dry-run

315:slim表示只构建 3.15 的 slim 变体,315表示该 Python 全部 flavor,--dry-run只打印将要执行的构建命令而不真正执行(build_winpython_meta.py 中select_builds负责解析这类命令行选择)。

一个构建支线(leg)产出四类元数据:包索引WinPython<flavor>-<arch>bit-<version>.md、pylock.*.toml、requir.*.txt,以及不归档的hashes_<version>.md。归档脚本与测试共同固定了这一约定——"hashes 描述的是单次构建的二进制产物而非发布本身"。

五、如何验证与使用这份索引

5.1 用wppm -diff比较任意两个版本

本仓库特意不生成_History.md对照文件。理由在 tests/test_changelog_files.py 与 .github/scripts/changelog_files.py 中写得很清楚:flavor 在不同发布周期之间会增减,且用户大约每年才升级一次,与前一个版本的对比价值有限;真正有用的是按需比较任意两个索引。工具为wppm的-diff子命令:

wppm -diff WinPythonslim-64bit-3.13.13.0.md WinPythonslim-64bit-3.13.12.0.md # 或等价形式 python -m wppm.diff WinPythonslim-64bit-3.13.13.0.md WinPythonslim-64bit-3.13.12.0.md
  • 两个文件可以是任意发布、任意 flavor、任意方向,不必相邻(见 wppm/wppm.py 的帮助文本与 wppm/diff.py 的完整用法);
  • 可比较指定小节:python -m wppm.diff file1.md file2.md --section python wheelhouse;
  • 可按配对比较:python -m wppm.diff file1.md file2.md --pairs python wheelhouse tools tools;
  • 可直接比较两个版本的完整索引:python -m wppm.diff <version2> <version1> [searchdir] [flavor] [architecture],例如python -m wppm.diff 3.13.13.0 3.13.12.0 changelogs slim 64;
  • 可写出对照文件:python -m wppm.diff --write-changelog <version2> <version1> [searchdir] [flavor] [architecture] [basedir]。

借助-diff,你可以快速回答"3.13.13.0slim 相比 3.13.12.0slim 升级了哪些包"这类问题。从两份索引的对比来看,本次升级的典型变化包括:pandas 3.0.2(上一版为 2.3.3)、altair 6.1.0、attrs 26.1.0、cryptography 46.0.7、numpy 2.4.4、pyarrow 24.0.0、duckdb 1.5.2、openai 2.36.0 等;同时上一版中存在的atomicwrites、pytz、typer-slim、googleapis-common-protos、invoke等条目在本版索引中消失或被合并,这正是依赖解析结果变化的体现。

5.2 其它配套元数据

除索引外,每个构建还会产出带哈希校验的需求文件与 pylock 文件,可配合wppm或 pip 使用。仓库 README(README.rst)给出了等价思路:用pip install --no-deps --require-hashes按需安装发行版同款 wheel 集合。日常使用中,wppm还提供-ls/-lsa(列出已安装包)、-p/-r(依赖/反向依赖树)、-tl(顶层条目)、-md(安装概况的 Markdown 汇总)、-i/-u(安装/卸载)等命令,均以-t指定目标发行目录。

六、结论与适用场景

WinPython 3.13.13.0slim 是一份面向 Windows 64 位的 Python 3.13.13 发行版,特点是:以约 500 个包覆盖科学计算、数据分析、可视化、Web 开发、数据库访问与 AI/LLM 工程全链路,同时通过tools64_pandoc_alone工具目录与依赖驱动的需求清单把体积与维护成本控制在合理范围。它适合:

  • 需要一个开箱即用、含 SciPy 生态的便携 Python 环境的科研与数据分析用户;
  • 需要在 Windows 上同时使用 JupyterLab、Spyder、FastAPI/Streamlit 与 LangChain/LangGraph/MCP 的 AI 应用开发者;
  • 希望通过wppm -diff自行评估升级影响、按需比对发布索引的进阶用户。

建议继续阅读 winpython_builds.toml、requirements_slim.txt 以理解构建定义,阅读 wppm/diff.py 与 tests/test_changelog_files.py 以掌握索引的解析与比较约定,并利用wppm -diff亲手对比3.13.13.0与其它版本的差异。

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

【免费下载链接】winpython

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

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

相关推荐

上一篇:2025最新:LSPatch深色模式适配全指南——从Theme.kt到系统主题无缝切换
下一篇:企业级问卷系统XIAOJUSURVEY:5分钟构建专业数据收集平台的完整指南

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

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

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

立即咨询