news 2026/10/16 6:04:28

WinPython PyPy 3.8.12.2 发行版变更全解析:PyPy 生态升级、包清单变迁与 History 文档生成机制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
WinPython PyPy 3.8.12.2 发行版变更全解析:PyPy 生态升级、包清单变迁与 History 文档生成机制
  • 开发工具
  • 构建工具
  • 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 发行版,内置大量预编译的科学计算包。本文以仓库中 changelogs/WinPythonPyPy-64bit-3.8.12.2_History.md 为主线,完整梳理 PyPy flavor 从 3.7.12.0 升级到 3.8.12.2 期间的工具链更新、Python 内核跃迁、新增/升级/移除的全部 Python 包清单,并结合 wppm/diff.py 与 winpython/build_winpython.py 的源码实现,讲清这类_History.md伴生文档的生成原理与阅读方法。读完本文,你既能掌握这一版本的具体生态变化,也能理解 WinPython 发行版"包索引 + 变更历史"双文档体系的运作机制,并学会用wppm -diff自行对比任意两个版本的包清单。

一、版本背景:PyPy flavor 在 WinPython 发行版体系中的位置

WinPython 仓库通过 winpython_builds.toml 描述构建矩阵:一条构建是一个(python, flavor)二元组,basedir、requirements、source_dirs、toolsdirs等全部由该二元组派生。当前配置中的 flavor 有dot、dotf、slim、slimf和暂不构建的whl,而PyPy 是历史上存在过、现已不再出现在构建清单中的 flavor——这一点可以从 changelogs 目录中保留的WinPythonPyPy-64bit-*.md系列文档确认。

本文主角3.8.12.2PyPy属于 PyPy flavor 的 3.8 系列,紧邻的上一个版本是3.7.12.0PyPy(同系列更早还有3.7.10.0PyPy)。所谓"3.8.12.2"中的 3.8.12 是 PyPy 所实现的语言版本,随后的.2是 WinPython 对该 PyPy 发行版的构建修订号。变更历史文档正是以"自 3.7.12.0PyPy 以来"为基准,逐条列出工具与包的变化。

二、变更总览:本次版本动了什么

类别变化概况
ToolsNodejs v14.17.6 → v16.14.2;npmjs 6.14.15 → 8.5.0
Python 内核Python 3.7.12 → 3.8.12(PyPy 实现的语言版本)
新增包46 个(异步、Qt/GUI、科学计算、.NET 集成、Web、开发工具等)
升级包约 150 个(覆盖科学计算、Jupyter、Web、数据库、GIS 全生态)
移除包28 个(含 spaCy NLP 全家桶、voila、astropy、llvmlite 等)

从数量上看,这是一次大版本性质的升级:Python 语言版本从 3.7 跃升到 3.8,同时刷新了发行版内几乎全部预编译包。

三、Tools 升级:前端工具链整体换代

文档 "Tools" 部分记录了两个随发行版分发的前端工具升级:

  • [Nodejs]v14.17.6 →v16.14.2:基于 Chrome V8 引擎的 JavaScript 运行时。v16 是当时 LTS 主线,主要带来 V8 引擎性能提升、更稳定的 timers 与 npm 集成。
  • [npmjs]6.14.15 →8.5.0:JavaScript 包管理器。8.x 系列引入了npm install默认的锁文件行为变化、--omit依赖裁剪语法等新特性。

配套的包索引文档 changelogs/WinPythonPyPy-64bit-3.8.12.2.md 还列出了Pandoc 2.3(通用文档转换器)作为第三个工具,它在本次变更中版本未动,因此 History 文档中没有出现。

这些工具随发行版而非 Python 包分发,说明 WinPython 不仅仅打包 Python 库,还面向"开箱即用的科学计算 + 文档写作"场景整合了运行时依赖,例如 JupyterLab 前端构建与 notebook 导出 PDF 都依赖 Nodejs/Pandoc。

四、新增 Python 包全清单与重点解读

本次共新增 46 个包,下面按技术领域分组呈现完整清单:

异步与并发生态

包版本说明
aiosignal1.2.0注册异步回调的列表
frozenlist1.3.0实现collections.abc.MutableSequence的列表结构
websockets10.3WebSocket 协议实现(RFC 6455 & 7692)
watchgod0.8.2现代、简单的文件监听与代码热重载
httptools0.4.0与框架无关的 HTTP 协议工具集

这批包补齐了 PyPy 发行版的 asyncio 拼图:websockets是 Jupyter 服务器、Dask 分布式调度等场景的底层依赖,frozenlist/aiosignal则是 aiohttp 3.8 的核心依赖(本次 aiohttp 同时升级到 3.8.1)。

Qt / GUI 与科学绘图

包版本说明
pyside66.3.0Qt 跨平台应用与 UI 框架的 Python 绑定
pyside6_essentials6.3.0PySide6 核心模块子集
pyside6_addons6.3.0PySide6 附加模块子集
shiboken66.3.0Python/C++ 绑定辅助模块(PySide6 的生成器依赖)
pyqtgraph0.12.4面向科学计算的图形与 GUI 库
pythonqwt0.10.1基于 Qt 的绘图控件
guidata2.1.1为数据集编辑与展示自动生成图形界面的库
formlayout1.2.1a1用 Python 创建 Qt 表单对话框与控件的最简方式
qtawesome1.1.1在 PyQt/PySide 应用中使用 FontAwesome 图标
qstylizer0.2.1为 PyQt4/5、PySide1/2 生成样式表
vitables3.0.2PyTables 数据文件的图形查看器

值得注意:本次一次性引入PySide6 6.3.0 全家桶(含shiboken6与 essentials/addons 拆分),加上pyqtgraph、pythonqwt、guidata、formlayout、qtawesome等,使 PyPy 发行版在 Qt6 时代的 GUI 科学计算能力得到系统化补强。vitables则补上了 HDF5 数据浏览的图形工具。

科学计算与数据工程

包版本说明
opencv_python4.5.5+mklOpenCV Python 绑定(MKL 加速版)
pygad2.16.3遗传算法库,支持 Keras 与 PyTorch 训练
swifter1.0.9以最快方式将任意函数应用于 pandas DataFrame/Series
dill0.3.3序列化"几乎一切"的 Python 对象
pycosat0.6.3picosat(SAT 求解器)的 Python 绑定

Jupyter 生态补全

包版本说明
jupyter_packaging0.12.0Jupyter 打包工具
notebook_shim0.1.0notebook traits 与配置的兼容层
papermill2.3.4参数化并运行 Jupyter / nteract Notebook

Web / API 与开发工具

包版本说明
alembic1.7.7SQLAlchemy 的数据库迁移工具
mako1.2.0高性能模板语言
commonmark0.9.1CommonMark Markdown 规范的 Python 解析器
rich12.3.0在终端渲染富文本、表格、进度条与 Markdown
fastjsonschema2.15.3高速 JSON Schema 校验实现
mypy0.942可选静态类型检查
mypy_extensions0.4.3mypy 的实验性类型系统扩展
black22.3.0不妥协的代码格式化工具
python_lsp_jsonrpc1.0.0JSON-RPC 2.0 服务器库
python_lsp_server1.4.1面向 LSP 协议的 Python 语言服务器
pyzo4.12.3面向科学计算的 Python IDE
xlwings0.24.7在 Python 与 Excel 之间双向交互
langcodes3.3.0用 IETF 语言标签标注人类语言
jellyfish0.8.9字符串近似与语音匹配
astor0.8.1读取/重写/写出 Python AST
tzdata2022.1IANA 时区数据提供者
backports.zoneinfo0.2.1标准库zoneinfo模块的回移植
pytz_deprecation_shim0.1.0.post0让pytz弃用更平滑的兼容层

.NET 集成(PyPy flavor 的独特亮点)

包版本说明
pythonnet3.0.0a2.NET 与 Mono 的 Python 集成
clr_loader0.1.7加载 .NET 运行时的纯 Python 通用加载器
clrmagic0.0.1a2在 IPython 中使用 .NET 语言的 cell magic
pywin32300+dummyPython 的 Windows 扩展

pythonnet+clr_loader+clrmagic的组合使 PyPy 解释器可以调用 .NET 程序集,pywin32则提供了 Win32 API 访问能力——这是 Windows 平台发行版差异化的关键能力。

五、升级 Python 包全清单与重点解读

本次升级涉及约 150 个包,其中最重要的一条是Python 内核本身:Python3.7.12 → 3.8.12,这是本次发行版的语言版本跃迁,也解释了为何大量依赖 3.8 特性的包能够随之升级。其余升级包完整清单如下(按原文档顺序):

affine 2.3.1、aiofiles 0.8.0、aiohttp 3.8.1、altair 4.2.0、amply 0.1.5、aniso8601 9.0.1、anyio 3.5.0、arrow 1.2.2、asgiref 3.5.0、asteval 0.9.26、astroid 2.11.3、async_timeout 4.0.2、attrs 21.4.0、babel 2.10.1、base58 2.1.1、beautifulsoup4 4.11.1、bleach 5.0.0、blis 0.7.7、bokeh 2.4.2、bottleneck 1.3.4、bqplot 0.12.33、branca 0.5.0、cachelib 0.6.0、cachetools 5.0.0、cartopy 0.20.2、catalogue 2.0.7、cffi 1.15.0、cftime 1.6.0、charset_normalizer 2.0.12、click 8.0.4、colorcet 3.0.0、coverage 6.3.2、csvs_to_sqlite 1.3.1a0、cvxopt 1.3.0、cvxpy 1.2.0、cython 0.29.28、dash 2.3.0、dask 2022.4.2、dask_image 2021.12.0、databases 0.5.5、datasette 0.61.1、datasette_graphql 2.0.1、debugpy 1.6.0、distlib 0.3.4、distributed 2022.4.2、ecos 2.0.10、entrypoints 0.4、fastapi 0.75.2、fasteners 0.17.3、filelock 3.6.0、fiona 1.8.21、flask 2.1.2、flask_compress 1.12、flit 3.7.1、flit_core 3.7.1、fonttools 4.31.2、fs 2.4.15、fsspec 2022.3.0、gdal 3.4.2、geoviews 1.9.5、gitpython 3.1.26、graphene 3.0、graphql_core 3.1.7、graphql_relay 3.1.5、great_expectations 0.14.6、h5py 3.6.0、holoviews 1.14.8、httpcore 0.14.7、httpie 3.1.0、httpx 0.22.0、hypercorn 0.13.2、hypothesis 6.45.1、idlex 1.22、imageio 2.17.0、imagesize 1.3.0、imbalanced_learn 0.9.0、importlib_metadata 4.11.3、importlib_resources 5.7.1、intake 0.6.4、ipycanvas 0.11.0、ipykernel 6.13.0、ipympl 0.9.1、ipython 7.32.0、ipywidgets 7.7.0、isort 5.10.1、itsdangerous 2.1.2、janus 1.0.0、jedi 0.18.1、jinja2 3.0.3、jsonpointer 2.3、jsonschema 4.4.0、jupyter_client 7.3.0、jupyter_console 6.4.3、jupyter_core 4.10.0、jupyter_lsp 1.5.1、jupyter_server 1.17.0、jupyter_server_mathjax 0.2.5、jupyter_server_proxy 3.2.1、jupyterlab 3.3.4、jupyterlab_git 0.34.2、jupyterlab_lsp 3.10.1、jupyterlab_pygments 0.2.2、jupyterlab_server 2.13.0、jupyterlab_widgets 1.1.0、keyring 23.5.0、kiwisolver 1.4.2、lazy_object_proxy 1.7.1、locket 1.0.0、loky 3.1.0、lxml 4.8.0、lz4 4.0.0、markdown 3.3.6、markupsafe 2.1.1、matplotlib 3.5.1、maturin 0.12.14、metakernel 0.28.2、mizani 0.7.4、mpld3 0.5.7、msgpack 1.0.3、multidict 6.0.2、nbclassic 0.3.7、nbclient 0.6.0、nbconvert 6.5.0、nbformat 5.3.0、nest_asyncio 1.5.5、networkx 2.8、nltk 3.7、notebook 6.4.11、numexpr 2.8.1、numpy 1.22.3+mkl、numpydoc 1.2.1、oct2py 5.4.3、octave_kernel 0.34.1、osqp 0.6.2.post4、packaging 21.3、pandas 1.4.2、panel 0.13.0、param 1.12.1、parso 0.8.3、pg8000 1.23.0、pillow 9.1.0、pint 0.19.2、pip 22.0.4、pipdeptree 2.2.1、pkginfo 1.8.2、platformdirs 2.5.2、plotly 5.7.0、plotnine 0.8.1.dev0、portpicker 1.5.0、prettytable 3.2.0、prometheus_client 0.14.1、prompt_toolkit 3.0.29、psutil 5.9.0、py 1.11.0、pybind11 2.9.2、pycparser 2.21、pydantic 1.9.0、pygame 2.1.2、pygments 2.11.2、pylint 2.13.7、pymongo 4.1.1、pyopengl 3.1.6、pyproj 3.3.1、pyshp 2.2.0、pytest 7.1.1、python_dotenv 0.19.2、python_slugify 6.1.2、python_snappy 0.6.1、pytz 2022.1、pyviz_comms 2.2.0、pywavelets 1.3.0、pywinpty 2.0.5、pyyaml 5.4.1、pyzstd 0.15.2、qdarkstyle 3.0.3、qdldl 0.1.5.post2、qtconsole 5.3.0、qtpy 2.1.0、quart 0.17.0、readme_renderer 35.0、redis 4.2.2、regex 2022.3.15、reportlab 3.6.9、requests 2.27.1、rope 1.0.0、rtree 1.0.0、rx 3.1.1、scikit_image 0.19.2、scipy 1.8.0、scs 3.2.0、setuptools 62.1.0、shapely 1.8.1.post1、simplejson 3.17.6、sklearn_contrib_lightning 0.6.2.post0、slicerator 1.1.0、snowballstemmer 2.2.0、sounddevice 0.4.4、soupsieve 2.3.2.post1、sphinx 4.5.0、sqlalchemy 1.4.35、sqlite_bro 0.12.2、sqlite_utils 3.26、starlette 0.17.1、statsmodels 0.13.2、sympy 1.10.1、tables 3.7.0、terminado 0.13.3、testpath 0.6.0、threadpoolctl 3.1.0、tifffile 2022.4.22、tinycss2 1.1.1、tomli 2.0.1、tomli_w 1.0.0、tomlkit 0.10.2、toolz 0.11.2、tqdm 4.64.0、trio 0.20.0、twine 4.0.0、typer 0.4.1、typing_extensions 4.2.0、tzlocal 4.2、ujson 5.2.0、urllib3 1.26.9、uvicorn 0.17.6、vega 3.6.0、virtualenv 20.14.1、wasabi 0.9.1、wasmer 1.1.0、wasmer_compiler_cranelift 1.1.0、wasmer_compiler_singlepass 1.1.0、watchdog 2.1.7、websocket_client 1.3.2、werkzeug 2.1.2、wheel 0.37.1、widgetsnbextension 3.6.0、winpython 4.6.20220501、wrapt 1.14.0、wsproto 1.1.0、xarray 2022.3.0、xlsxwriter 3.0.3、yapf 0.32.0、zarr 2.11.3、zict 2.2.0、zipp 3.8.0

重点升级解读

科学计算基石全面换代:numpy从 1.21.4+mkl 升到1.22.3+mkl(MKL 加速),scipy升到1.8.0,pandas升到1.4.2,matplotlib从开发版3.5.0.dev2464+g95463c32e6收敛到正式版3.5.1。h5py 3.6.0、numexpr 2.8.1、bottleneck 1.3.4、statsmodels 0.13.2、xarray 2022.3.0同步跟进。这套组合决定了该发行版面向数值计算与数据分析的核心能力版本。

Jupyter 全线升级:jupyterlab 3.2.2 → 3.3.4、jupyter_server 1.11.2 → 1.17.0、jupyter_client 6.2.0 → 7.3.0、ipykernel 6.5.0 → 6.13.0、ipython 7.29.0 → 7.32.0、notebook 6.4.5 → 6.4.11、nbconvert 6.2.0 → 6.5.0,配套的nbclassic、nbclient、nbformat、qtconsole、terminado、widgetsnbextension、jupyterlab_lsp、jupyterlab_git等均同步升级,是一次完整的 Jupyter 技术栈刷新。

异步与 Web 框架换代:aiohttp 3.7.4.post0 → 3.8.1、fastapi 0.70.0 → 0.75.2、flask 2.0.2 → 2.1.2、httpx 0.20.0 → 0.22.0、uvicorn 0.15.0 → 0.17.6、starlette 0.16.0 → 0.17.1、quart 0.15.1 → 0.17.0、hypercorn 0.11.2 → 0.13.2、dash 2.0.0 → 2.3.0、dask 2021.11.0 → 2022.4.2(含distributed),Web 服务与并行计算场景的能力显著增强。

GIS 与可视化生态:gdal 3.3.3 → 3.4.2、cartopy 0.20.2、fiona 1.8.21、pyproj 3.3.1、shapely 1.8.1.post1、rtree 1.0.0、geoviews 1.9.5、holoviews 1.14.8、bokeh 2.4.2、plotly 5.7.0、altair 4.2.0、panel 0.13.0全线推进。

数据库与存储:sqlalchemy 1.4.35、redis 4.2.2、pymongo 4.1.1、pg8000 1.23.0、datasette 0.61.1、sqlite_utils 3.26、tables 3.7.0、zarr 2.11.3、h5py 3.6.0。

WinPython 工具自身:winpython 4.6.20211106 → 4.6.20220501,即发行版内置的 WinPython 发行工具集(含 WPPM 包管理器)也同步升级。

值得留意的特殊条目:pyyaml记录为 6.0 → 5.4.1,从版本号看是一次"回退"。可以推断这很可能与 PyPy 平台上可用 wheel 的兼容性约束有关——PyPy 无法直接使用 CPython 编译的扩展 wheel,只能依赖 PyPy 兼容的预编译包或纯 Python 实现,因此个别包在版本选择上会受到可用构件(artifact)的制约。matplotlib从带 git 提交号的开发版本升级为正式发布版,也说明该发行版在 3.7 时代曾依赖较激进的开发版构件。

六、移除 Python 包全清单与解读

本次移除 28 个包,完整清单如下:

argcomplete 1.12.3、astroml 1.0.1、astropy 4.3.1、backports.entry_points_selectable 1.1.0、cached_property 1.5.2、cramjam 2.4.0、cryptography 3.4.8、cymem 2.0.6、cytoolz 0.11.0、dask_labextension 5.1.0、flask_cors 3.0.10、ibis_framework 2.0.0、llvmlite 0.36.0、murmurhash 1.0.6、nlopt 2.7.0、parsy 1.3.0、preshed 3.0.6、promise 2.3、pyerfa 2.0.0、setuptools_scm 6.3.2、spacy 3.1.3、spacy_legacy 3.0.8、srsly 2.4.2、thinc 8.0.12、thrift 0.15.0、tranquilizer 0.5.1a1、voila 0.2.16、voila_gridstack 0.2.0

移除包的规律

  • NLP 全家桶退场:spacy、spacy_legacy及其依赖链thinc、cymem、preshed、murmurhash、srsly、blis依赖(blis 已升级保留)、catalogue被成组移除。spaCy 的核心扩展均为 Cython 编译且对 PyPy 支持有限,可以推断这是 PyPy flavor 无法获得兼容构件后作出的取舍。
  • 科学计算收缩:astropy(含pyerfa、astroml)、llvmlite(Numba 依赖,PyPy 无可用构建)、nlopt被移除,与"PyPy 平台可用预编译包有限"的现实一致。
  • Jupyter 周边精简:voila与voila_gridstack(notebook 只读服务)、dask_labextension(旧版 Dask 集群扩展,Dask 主包升级后以 JupyterLab 原生扩展替代)、tranquilizer(将函数暴露为 REST 的实验工具)被移除。
  • 工具性/兼容层清理:cramjam、cytoolz(由 toolz 纯 Python 版承担)、cached_property(3.8 标准库已内置functools.cached_property)、backports.entry_points_selectable(由新版importlib_metadata内置)、setuptools_scm(构建期工具,无需随发行版分发)、thrift、promise、parsy等。

整体来看,移除逻辑遵循"PyPy 兼容性优先 + 避免与标准库/新版依赖重复"的原则,这也解释了为何移除清单与新增/升级清单在领域上高度互补。

七、机制探秘:_History.md伴生文档是如何生成的

这类 History 文档并非手写,而是由仓库中的 wppm/diff.py 自动对比两个版本包索引生成。核心流程如下:

1. 解析包索引

wppm/diff.py 中的Package与PackageIndex两个类负责解析索引文档。Package定义了两种行格式正则(SourceForge 风格name | version | description与 Google Code 风格),PackageIndex按### Tools、### Python packages、### WheelHouse packages三个小节分桶,并跳过Name | Version | Description表头、<details>等噪声行。

2. 三分类对比

compare_packages函数对两个索引做规范化(包名统一为小写下划线)后执行集合差运算,恰好生成文档中的三个区块:

  • New packages:新索引中存在、旧索引中没有的包;
  • Upgraded packages:两侧都存在但版本不同的包,输出格式为包名 旧版本 → 新版本 (描述);
  • Removed packages:旧索引中存在、新索引中没有的包。

3. 版本对版本的历史对比

compare_package_indexes(version2, version1, ...)生成文档标题## History of changes for WinPython-{architecture}bit {version2 + flavor},并通过find_previous_version从changelogs目录中自动定位"紧邻的前一版本"——这正是本文档标题下"since version 3.7.12.0PyPy"的来源。write_changelog函数则把结果写入WinPython{flavor}-{architecture}bit-{version2}_History.md文件。

4. 构建管线中的调用点

在 winpython/build_winpython.py 的构建流程中,Step 7(generate changelog)会先调用wppm.Distribution().generate_package_index_markdown()生成当前版本的包索引.md,随后调用diff.compare_package_indexes对比该索引与 changelogs 目录中前一版本的索引,产出_History.md。注释中还解释了为何 History 文件"留在构建输出目录、不复制进 changelogs/":flavor 在发布周期之间来来去去,而用户大约一年才升级一次,紧邻版本间的历史对比对读者意义有限。

5. 测试对"History 语义"的固化

tests/test_changelog_files.py 的模块 docstring 明确指出:"A history compares a release against the one immediately before it, and that chain carries no meaning"——即新版构建流程有意不再自动产出 History 伴生文件(test_no_history_is_written_against_the_previous_release对此做了断言固化),鼓励用户用wppm -diff <a>.md <b>.md自行选择任意两个索引进行对比。仓库中现存的大量_History.md(包括本文主角)属于历史遗留产物,用于回溯过去各版本的生态变化轨迹。

八、用 wppm 自行对比任意版本

如果你想知道任意两个 WinPython 版本之间包生态的差异,可以直接使用仓库自带的 diff 工具,无需依赖 History 伴生文档:

# 对比两个索引文件的所有小节(Tools / Python packages / WheelHouse) wppm -diff changelogs/WinPythonPyPy-64bit-3.8.12.2.md changelogs/WinPythonPyPy-64bit-3.7.12.0.md # 等价于直接调用模块 python -m wppm.diff file1.md file2.md # 只对比指定小节 python -m wppm.diff file1.md file2.md --section python python # 对比多对小节 python -m wppm.diff file1.md file2.md --pairs python python tools tools

对于按版本号对比,则使用:

# 对比版本 3.8.12.2 与 3.7.12.0(默认从 changelogs 目录读取) python -m wppm.diff 3.8.12.2 3.7.12.0 "" 64 # 将对比结果写入 History 文件 python -m wppm.diff --write-changelog 3.8.12.2 3.7.12.0 changelogs "" 64

注意:Windows 控制台默认编码为 cp1252,而升级行中的箭头→无法用该编码输出,因此 wppm/diff.py 在入口处对sys.stdout做了reconfigure(encoding="utf-8", errors="replace")处理,在非 UTF-8 终端下运行时可留意这一点。

九、延伸阅读与对照材料

  • 本版本的完整包索引(含 Tools 与全部 Python 包版本):changelogs/WinPythonPyPy-64bit-3.8.12.2.md
  • 下一版本(3.8.12.3)的变更历史,可对照观察 PyPy 系列的演进连续性:changelogs/WinPythonPyPy-64bit-3.8.12.3_History.md
  • 变更历史的生成实现:wppm/diff.py
  • 构建流程中 changelog 与 History 的生成步骤:winpython/build_winpython.py
  • 关于 History 伴生文件语义的测试与说明:tests/test_changelog_files.py
  • 构建矩阵与 flavor 机制:winpython_builds.toml

结语

WinPython PyPy 3.8.12.2 是一次承上启下的大版本更新:Python 语言内核从 3.7 跃迁到 3.8,46 个新包补齐了异步、Qt6 GUI、.NET 集成与科学计算拼图,约 150 个包完成升级,28 个因 PyPy 兼容性、标准库内置或功能替代而移除。通过结合 wppm/diff.py 的源码可以看到,这类变更历史并非零散笔记,而是由"包索引解析 → 三分类集合对比 → 版本定位"组成的自动化流水线产物。对于仍在维护或阅读历史 PyPy 发行版的用户,理解这套机制后,即可用wppm -diff自主完成任意版本间的生态对比,不再依赖人工整理的 History 文档。

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

【免费下载链接】winpython

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

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

相关推荐

上一篇:提升CMake项目效率:vscode-cmake-tools的10个实用技巧
下一篇:揭秘:如何让Blender听懂语音并让角色自动开口说话

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/16 6:01:41

虚拟陀螺仪(软陀螺)技术白皮书:原理、局限与特定场景应用

摘要本白皮书旨在阐述“软陀螺仪”的技术定义、实现原理及其在消费电子与工业控制领域的实际应用边界。软陀螺仪并非独立的物理传感器&#xff0c;而是一种基于多传感器融合算法的虚拟姿态感知方案。尽管该技术在低成本物联网设备中具有一定应用价值&#xff0c;但在智能手机与…

作者头像 李华
网站建设 2026/10/16 6:01:18

ezdxf 实战:OCS/UCS 坐标系统详解与在三维空间中放置二维实体

图形学 【免费下载链接】ezdxf Python interface to DXF 项目地址&#xff1a; https://gitcode.com/gh_mirrors/ez/ezdxf 点击查看 免费下载 本篇指南以 ezdxf 官方教程《Tutorial for OCS/UCS Usage》&#xff08;ocs_usage.rst&#xff09;为主线&#xff0c;系统讲解 WCS、…

作者头像 李华
网站建设 2026/10/16 6:00:05

超螺旋滑模观测器抑制PMSM无位置传感器控制抖振的Matlab复现

干电机控制的都知道&#xff0c;无位置传感器控制这块&#xff0c;滑模观测器是绕不开的主流。最近我在复现一个基于高速滑模观测器优化抖振问题的永磁同步电机无位置传感器控制算法&#xff0c;Matlab代码从零搭到仿真收敛&#xff0c;中间踩了不少坑&#xff0c;也把传统一阶…

作者头像 李华
网站建设 2026/10/16 6:00:05

两张静态图变16帧卡通动画:ToonCrafter 图像插值免费上手

两张静态图变16帧卡通动画&#xff1a;ToonCrafter 图像插值免费上手 【免费下载链接】ToonCrafter [SIGGRAPH Asia 2024, Journal Track] ToonCrafter: Generative Cartoon Interpolation 项目地址: https://gitcode.com/GitHub_Trending/to/ToonCrafter ToonCrafter 是…

作者头像 李华
网站建设 2026/10/16 5:57:57

轻量级ERP进销存系统源码解析:小微企业从零搭建管理工具

轻量级ERP进销存系统源码&#xff5c;专为小微企业、个体工商户及个人记账设计做开发这些年&#xff0c;陆陆续续帮朋友和客户折腾过好几套进销存系统。从最初拿Excel表格硬撑&#xff0c;到后来用商用SaaS系统&#xff0c;再到自己动手写轻量级ERP源码&#xff0c;这条路上踩过…

作者头像 李华