尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

WinPython 3.8.7.0cod 发行版解析:完整包清单、变更历史与 changelog 自动生成机制

WinPython 3.8.7.0cod 发行版解析:完整包清单、变更历史与 changelog 自动生成机制 开发工具构建工具CLI包管理器【免费下载链接】winpythonA free Python-distribution for Windows platform, including prebuilt packages for Scientific Python.项目地址https://gitcode.com/gh_mirrors/wi/winpython点击查看免费下载本篇技术指南以 WinPython 官方 changelog 文档 WinPythoncod-64bit-3.8.7.0.md 及其配套的 _History.md 为主体完整解读 WinPython 64bit v3.8.7.0cod 这一发行变体所包含的全部随附工具与 400 Python 包逐条梳理其自 3.8.6.0cod 以来的新增、升级与移除清单同时结合本仓库的构建工具链源码深入讲解这份 changelog 是如何由构建流水线自动生成的。读完本文你将掌握该发行版的可复现内容清单、版本升级要点以及用wppm -diff自行对比任意两个发行版包索引的方法。一、3.8.7.0cod 是什么一个带 flavor 标识的 WinPython 发行变体WinPython 是一个面向 Windows 平台的便携式 Python 发行版特点是开箱即用——解压即运行无需安装且预置了大量 Scientific Python 生态的预编译包。本仓库winpython是其构建工具链与包管理工具WPPM的源码仓库而非发行版本体见 README.rst。本 changelog 对应的发行版本号为3.8.7.0cod其中3.8.7表示底层 Python 版本为CPython 3.8.7cod是该发行版的flavor风味/变体标识。从仓库根目录的 changelogs/md5_sha1.txt 可以看到同一代 WinPython 会同时产出多个 flavor 的安装包例如安装包文件名大小Winpython64-3.8.7.0.exe762 745 203 BytesWinpython64-3.8.7.0dot.exe25 345 933 BytesWinpython64-3.8.7.0cod.exe815 119 173 Bytes对比可见cod是体积最大的全功能变体约 815 MB携带的包数量最多而dot是一个约 25 MB 的极简变体。flavor 机制在构建配置 winpython_builds.toml 中有明确设计一个发行版本由(python, flavor)二元组确定[flavors.xxx]段定义各 flavor 的依赖清单requirements、包源目录source_dirs与工具目录toolsdirs[pythons.3XX]段则声明该 Python 版本要构建哪些 flavor。二、随附工具Tools清单3.8.7.0cod 随发行版携带 4 个开发工具完整清单如下与官方 changelog 一致名称版本说明Nodejsv14.15.0基于 Chrome V8 引擎的 JavaScript 运行时npmjs6.14.8JavaScript 包管理器Pandoc2.3通用文档格式转换器VSCode1.52.1.0微软出品的源代码编辑器相比上一个版本 3.8.6.0codNodejs v14.14.0、VSCode 1.50.0.0本轮Nodejs 升级至 v14.15.0VSCode 升级至 1.52.1.0见 WinPythoncod-64bit-3.8.7.0_History.md 的 Tools / Upgraded packages 小节。其中 VSCode 与python-language-server0.36.2、pyls_black、pyls_spyder等语言服务插件协同构成开箱即用的 Python IDE 体验Pandoc 则与pypandoc、pandocfilters配套支撑 notebook 转 PDF/Word 等文档转换场景。三、Python 包清单400 预装包的领域全景3.8.7.0cod 的 Python packages 章节列出了发行版预装的全部 Python 包版本与摘要均以官方 changelog 为准。这些包覆盖了从科学计算到 Web 开发的完整 PyData 生态可按领域归类如下3.1 科学计算与数值分析发行版的核心定位包名版本用途numpy1.19.4mkl数组计算基础库带 MKL 加速scipy1.5.4科学计算库sympy1.7.1符号计算系统pandas1.1.5数据分析与时间序列numexpr2.7.2快速数值表达式求值bottleneck1.3.2C 实现的快速 NumPy 数组函数numdifftools0.9.39自动数值微分uncertainties3.1.5误差传播与不确定度计算mpmath1.1.0任意精度浮点运算gmpy22.0.8GMP/MPIR/MPFR 接口pint0.16.1物理量纲模块quantecon0.4.8数量经济学建模statsmodels0.12.1统计计算与模型pyflux0.4.17时间序列分析3.2 机器学习与数据挖掘scikit_learn 0.24.0机器学习与数据挖掘核心库numba 0.52.0 / llvmlite 0.35.0LLVM 加速的 Python 编译dask 2020.12.0 / distributed 2020.12.0 / dask_ml 1.7.0 / dask_glm 0.2.0 / dask_searchcv 0.2.0分布式并行计算全家桶scikit_image 0.18.1图像处理shap 0.36.0机器学习模型解释mlxtend 0.18.0机器学习扩展scikit_optimize 0.8.1 / sklearn_contrib_lightning 0.6.0 / imbalanced_learn 0.7.0 / pygbm 0.1.0emcee 3.0.2 / pymc 2.3.8MCMC 采样umap_learn 0.4.6、astroml 0.4.1、cvxopt 1.2.5、cvxpy 1.1.7、nlopt 2.7.0、osqp 0.6.1降维、天文数据挖掘与凸优化onnxruntime 1.6.0ONNX 模型推理本轮新增shap、h5py 2.10.0、tables 3.6.1、zarr 2.6.1、pyarrow 2.0.0、fastparquet 0.4.1模型与数据持久化3.3 数据可视化matplotlib 3.3.3、seaborn 0.11.1、plotly 4.14.1、bokeh 2.2.3、altair 4.1.0holoviews 1.14.0、hvplot 0.7.0、panel 0.10.2、datashader 0.11.1、geoviews 1.8.1PyViz 生态plotnine 0.7.1、mizani 0.7.2ggplot2 风格语法folium 0.11.0、pydeck 0.5.0、ipyleaflet 0.13.3地图可视化pyqtgraph 0.11.1、guiqwt 3.0.5、mpld3 0.5.2、bqplot 0.12.19、wordcloud 1.8.1、colorcet 2.0.23.4 GIS / 地理空间gdal 3.1.4、fiona 1.8.18、shapely 1.7.1、geopandas 0.8.1、pyproj 3.0.0.post1、rasterio 1.1.8、cartopy 0.18.0、rtree 0.9.5、pyshp 2.1.2、geopy 2.0.0、mercantile 1.1.6、pyepsg 0.4.0、pyhdf 0.10.23.5 Web / 异步 / 数据库Web 框架flask 1.1.2含 flask_restx、flask_sqlalchemy、flask_mail、flask_session、flask_accepts、fastapi 0.63.0、starlette 0.13.6、quart 0.14.1、tornado 6.1、aiohttp 3.7.3、httpx 0.16.1、httpie 2.3.0、uvicorn 0.13.2、hypercorn 0.11.1、datasette 0.53异步生态anyio 2.0.2本轮新增、asgiref 3.3.1、trio 0.17.0、sniffio 1.2.0、nest_asyncio 1.4.3、janus 0.6.1数据库sqlalchemy 1.3.22、sqlite_bro 0.9.1、pymongo 3.11.2、redis 3.5.3、pg8000 1.16.5、mysql_connector_python 8.0.21、pyodbc 4.0.30、adodbapi 2.6.1.3、databases 0.4.1、ibis_framework 1.4.03.6 交互式计算与 IDE 生态IPython 7.19.0、jupyter 1.0.0、jupyterlab 2.2.9、notebook 6.1.5、qtconsole 5.0.1Spyder 4.2.1 spyder_kernels 1.10.1科学计算 IDE、pyzo 4.11.2ipywidgets 7.5.1、widgetsnbextension 3.5.1、papermill 2.2.2、nbval 0.9.6本轮新增、voila 0.2.4、rise 5.7.1、octave_kernel 0.32.0、metakernel 0.27.53.7 Qt / GUI 桌面开发PyQt5 5.15.1 pyqt5_sip 12.8.1 pyqt5_tools pyqtwebengine 5.15.1qtpy 1.9.0、qtawesome 1.0.2、qdarkstyle 2.8.1、pyqtgraph 0.11.1、guidata 1.7.9、pythonqwt 0.8.3、formlayout 2.0.0a03.8 工程化与开发工具打包分发pyinstaller 4.1 pyinstaller_hooks_contrib 2020.10本轮新增、cx_freeze 6.4.2、py2exe 相关依赖、twine 3.2.0、wheel 0.36.2代码质量pylint 2.6.0、flake8 3.8.4、black 20.8b1、autopep8 1.5.3、mypy 0.790、yapf 0.30.0、isort 5.6.4、pyflakes 2.2.0、pydocstyle 5.1.1测试pytest 6.2.1、hypothesis 5.43.3、coverage 5.3.1本轮新增、nbval 0.9.6本轮新增语言桥接rpy2 3.4.0.dev0、oct2py 5.2.0、pythonnet 2.5.1、julia 0.5.6、wasmer 1.0.0b1、pybind11 2.6.1、cython 0.29.21Windows 专属pywin32 300、winrt 1.0.20330.1、pywinusb 0.4.2、pyserial 3.5、sounddevice 0.4.1、pyaudio 0.2.11、msvc_runtime 14.28.29325完整的 400 包逐条清单含每条目的 PyPI 链接与官方摘要请直接查阅 WinPythoncod-64bit-3.8.7.0.md 原文本节仅做领域归纳。四、自 3.8.6.0cod 以来的变更新增、升级与移除配套的 WinPythoncod-64bit-3.8.7.0_History.md 记录了自上一版 3.8.6.0cod 以来的全部包变动以下内容完整继承自官方文档。4.1 本轮新增的 11 个包包名版本用途anyio2.0.2多异步事件循环的高层兼容层coverage5.3.1代码覆盖率测量nbval0.9.6验证 Jupyter notebook 的 pytest 插件onnxruntime1.6.0ONNX Runtime Python 绑定pyinstaller_hooks_contrib2020.10PyInstaller 社区维护的 hookspyls_black0.4.6Python Language Server 的 Black 插件pyls_spyder0.3.0python-language-server 的 Spyder 扩展pysocks1.7.1Python SOCKS 客户端模块sklearn_contrib_lightning0.6.0大规模稀疏线性分类/回归/排序textdistance4.2.0文本距离计算three_merge0.1.1基于基准串的三方字符串合并4.2 本轮升级的核心包节选关键升级History 文档共记录了 100 个包的版本升级其中对科学计算用户影响最大的几组包名版本变化关键点Python3.8.6 → 3.8.7底层解释器安全/缺陷修复更新numpy1.19.2mkl → 1.19.4mkl数组计算核心scipy1.5.3 → 1.5.4科学计算核心pandas1.1.3 → 1.1.5数据分析核心scikit_learn0.23.2 → 0.24.0机器学习核心大版本升级matplotlib3.3.2 → 3.3.3绘图核心pywin32228 → 300Windows API 绑定跨大版本升级spyder4.1.5 → 4.2.1IDE 大版本升级pyinstaller3.6 → 4.1打包工具大版本升级ipython7.18.1 → 7.19.0交互式计算dask / distributed2.30.0 → 2020.12.0切换到新版本号体系日历化版本pip20.2.4 → 20.3.3包管理器xarray0.16.1 → 0.16.2带标签的多维数组h5py—维持 2.10.0未随本轮变动其余升级包还包括 aiohttp 3.7.3、astropy 4.1、cryptography 3.3.1、fastapi 0.63.0、holoviews 1.14.0、numba 0.52.0、plotly 4.14.1、pytest 6.2.1、requests 2.25.1、tornado 6.1、urllib3 1.26.2、xlrd 2.0.1从 1.2.0 跨大版本、winrt 1.0.20330.1 等完整逐条清单见 WinPythoncod-64bit-3.8.7.0_History.md 原文。4.3 本轮移除的 3 个包包名原版本说明comtypes1.1.7纯 Python COM 包monotonic1.5Python 2 / 3.3 的 time.monotonic() 实现3.8 下已无用pathtools0.1.2文件系统通用工具这 3 个包在 Python 3.8 环境下已属冗余依赖monotonic是为旧版 Python 提供time.monotonic()的 backportpathtools则是watchdog0.x 时代的依赖watchdog 本轮已升级到 1.0.2 并自带了依赖。五、源码级解析这份 changelog 是怎么自动生成的本仓库最值得深入的一点是这些 changelog 文档并非手工撰写而是构建流水线的标准产出物。理解生成机制有助于你反查、复用或自行对比发行版内容。5.1 构建主流程中的 Step 7: generate changelog在构建脚本 winpython/build_winpython.py 中main()依次执行 8 个步骤清理旧构建目录Step 1→ 用make.py组装基础 PythonStep 2→ 安装 mandatory/main 依赖Step 3→ 打补丁Step 4→ 可选并行字节码编译Step 4b→ 安装 wheelhouse 依赖Step 5→ 生成 lockfilesStep 6→生成 changelogStep 7→ 生成安装器Step 8。Step 7 由两段run_command完成生成包索引 Markdown即本文所解析的WinPythoncod-64bit-3.8.7.0.md调用wppm.Distribution().generate_package_index_markdown()把当前发行目录中的工具、已安装包、wheelhouse 包扫描汇总后渲染为 Markdown 表格文件名按WinPython{flavor}-{arch}bit-{version}.md规则命名并复制到仓库的changelogs/目录生成变更历史即_History.md调用wppm.diff.compare_package_indexes(version, searchdir, flavor, architecture)从changelogs/中读取同一 flavor 的上一个版本索引与新版本索引做差集运算自动产出 New/Upgraded/Removed 三段清单。脚本中的注释还透露了一个设计细节History 文件不会被复制进changelogs/changelog 目录只保留各版本的完整包索引因为 flavor 会随构建周期增删、读者也大多一年升级一次跨版 diff 对发布档案没有长期价值需要对比时用wppm -diff自行选取任意两个索引即可。5.2 索引生成器wppm 的generate_package_index_markdown索引生成的核心实现在 wppm/wppm.pyget_package_index_data()先汇总三组数据——随附工具Tools、已安装 Python 包Python packages、wheelhouse 预下载包WheelHouse packages每条记录包含name / url / version / summary四个字段随后generate_package_index_markdown()用固定的## 发行版名 版本号 三张表格的模板渲染。这也解释了为什么所有 changelog 的排版风格完全一致它们是同一段模板代码的产物。5.3 差异引擎wppm/diff.pywppm/diff.py 的compare_packages(old, new)是 History 文档的逻辑核心包名先做k.replace(-, _).lower()归一化兼容python-dateutil与python_dateutil这类命名差异新索引中不存在于旧索引的包 →New packages新旧版本号不同的包 →Upgraded packages按旧版本 → 新版本方向输出注释明确提醒方向错了会把所有升级看成降级旧索引中存在但新索引缺失的包 →Removed packages。版本号的解析复用packaging.versionwppm/diff.py因此3.14.7.1b1这类带 release level 的 PEP 440 版本也能正确排序并参与找上一个版本的比较find_previous_version取所有 当前版本中的最大值。5.4 手动对比任意两个发行版基于上述引擎你可以在任意环境手动对比两个包索引文件无需构建整个发行版# 对比两个索引文件的所有章节 python -m wppm.diff WinPythoncod-64bit-3.8.6.0.md WinPythoncod-64bit-3.8.7.0.md # 只对比 python 章节 python -m wppm.diff file1.md file2.md --section python python # 按章节配对对比如 python 对 python、tools 对 tools python -m wppm.diff file1.md file2.md --pairs python python tools tools # 按版本号对比从 changelogs 目录自动找上一版本 python -m wppm.diff 3.8.7.0cod 3.8.6.0cod changelogs cod 64 # 直接写回一个 _History.md 文件 python -m wppm.diff --write-changelog 3.8.7.0cod 3.8.6.0cod changelogs cod 64注意Windows 控制台默认 cp1252 编码会导致升级箭头→输出报错diff.py的__main__已用sys.stdout.reconfigure(encodingutf-8)处理见 wppm/diff.py。六、校验与安装用 md5_sha1.txt 验证下载完整性仓库的 changelogs/md5_sha1.txt 为每一代发行版提供了三列校验值MD5、SHA1、SHA256其中Winpython64-3.8.7.0cod.exe的条目可用于下载后完整性校验# Windows PowerShell 示例 Get-FileHash .\Winpython64-3.8.7.0cod.exe -Algorithm SHA256将输出与 changelogs 目录中记录的 SHA256 值比对一致后即可运行自解压安装包或直接解压使用。WinPython 是便携式发行版无需系统级安装解压后运行根目录下的启动器即可包管理则推荐使用随发行版附带的 WPPMWinPython Package Manager或pip发行版自带 pip 20.3.3。七、小结3.8.7.0cod是 WinPython 64bit 体系下基于 CPython 3.8.7 的全功能 flavor随附 Nodejs v14.15.0、npmjs 6.14.8、Pandoc 2.3、VSCode 1.52.1.0 四大工具及 400 预装 Python 包相对 3.8.6.0cod本轮新增 11 个包onnxruntime、coverage、nbval、pyls_black 等、升级 100 个包Python 3.8.7、scikit-learn 0.24.0、pywin32 300、spyder 4.2.1 等、移除 3 个冗余包comtypes、monotonic、pathtools该类 changelog 由构建流水线自动生成build_winpython.pyStep 7 →wppm.Distribution().generate_package_index_markdown()生成包索引 →wppm.diff.compare_package_indexes()生成变更历史你可用wppm -diff复现任意两个发行版的差异对比。进一步阅读完整的逐包清单见 WinPythoncod-64bit-3.8.7.0.md逐条变更见 _History.md构建配置见 winpython_builds.toml 与 build_winpython_meta.py。赞分享开发工具构建工具CLI包管理器【免费下载链接】winpythonA free Python-distribution for Windows platform, including prebuilt packages for Scientific Python.项目地址https://gitcode.com/gh_mirrors/wi/winpython点击查看免费下载相关推荐WinPython 3.7.7.0 发布解析64 位发行版完整包清单、变更历史与 changelog 生成机制WinPython 3.7.7.0 发布解析64 位发行版完整包清单、变更历史与 changelog 生成机制 本文以仓库 changelogs/WinPyt开发工具构建工具CLI包管理器WinPython Slim 3.5.1.1 版本解析变更历史、新增包清单与 Changelog 生成机制WinPython Slim 3.5.1.1 版本解析变更历史、新增包清单与 Changelog 生成机制 WinPython 是一款面向 Windows 平开发工具构建工具CLI包管理器WinPython 3.12.6.064 位发行版全景解析完整包清单、变更历史与生成机制WinPython 3.12.6.064 位发行版全景解析完整包清单、变更历史与生成机制 导读 本文以 WinPython 官方仓库中的发行版元数据文档开发工具构建工具CLI包管理器上一篇如何用DouyinLiveWebFetcher快速搭建抖音直播数据监控系统新手终极指南下一篇如何用DouyinLiveWebFetcher实现抖音直播数据自动化采集完整指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表