- 开发工具
- 构建工具
- CLI
- 包管理器
【免费下载链接】winpython
A free Python-distribution for Windows platform, including prebuilt packages for Scientific Python.
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 段只有两项:
| Name | Version | Description |
|---|---|---|
| Pandoc | 3.1.9 | an universal document converter |
| Python | 3.13.13 | Python 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:
| flavor | requirements | source_dirs | toolsdirs | 定位 |
|---|---|---|---|---|
dot | dot_requirements.txt | packages.win-amd64 | bdTools\Tools.dot | 默认/基础 |
dotf | dot_requirements.txt | packages.win-amd64t | bdTools\Tools.dot | 自由线程(free-threaded)变体 |
slim | requirements_slim.txt | packages.win-amd64 | bdTools\tools64_pandoc_alone | 精简(本文主题) |
slimf | requirements_slimf.txt | packages.win-amd64t | bdTools\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-run315: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.
相关推荐
WinPython 3.7.4.1 发行版全解析:64 位科学计算 Python 发行版的包清单结构与生成机制
WinPython 3.7.4.1 发行版全解析:64 位科学计算 Python 发行版的包清单结构与生成机制 WinPython 64bit 3.7.4.1
开发工具构建工具CLI包管理器WinPython 3.7.4.0Ps2(64 位)发行包清单全解析:基于 PySide2 的科学计算 Python 发行版
WinPython 3.7.4.0Ps2(64 位)发行包清单全解析:基于 PySide2 的科学计算 Python 发行版 本篇技术指南以 WinPython
开发工具构建工具CLI包管理器WinPython 3.13.12.0 slim(64 位)发行版包清单解析与构建体系指南
WinPython 3.13.12.0 slim(64 位)发行版包清单解析与构建体系指南 本文以 WinPython 官方 changelog 文档 chan
开发工具构建工具CLI包管理器
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考