ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

WinPython 2.7.10.2 发行版包清单与版本演进:Python 2.7 时代科学计算栈的完整档案

WinPython 2.7.10.2 发行版包清单与版本演进:Python 2.7 时代科学计算栈的完整档案
  • 开发工具
  • 构建工具
  • CLI
  • 包管理器

【免费下载链接】winpython

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

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

本文以 WinPython 2.7.10.2 发行版的官方包清单(changelogs/WinPython-2.7.10.2.md)及其变更历史(changelogs/WinPython-2.7.10.2_History.md)为主体,完整收录该版本随附的工具与 147 个 Python 包的名称、版本和用途说明,并逐一解读相对 2.7.10.1 新增、升级与移除的 47 项变更。文中还结合当前仓库的 WPPM 工具链源码,说明这份清单是如何由wppm自动生成的,以及读者可以用哪些命令自行验证任意两个版本之间的差异。

读完本文,你将掌握:WinPython 2.7 时代发行版的完整技术栈构成(NumPy/SciPy 核心、可视化、数据科学、数据库、Web 与工具链)、2.7.10.1 → 2.7.10.2 的逐项版本演进逻辑,以及wppm包索引生成与diff比对机制的实现细节。

需要说明适用前提:WinPython 2.7.10.2 是 2015 年前后发行的 Python 2.7.10 便携版科学计算发行版,属于 WinPython 历史存档;当前仓库的工具链面向 Python 3 现代周期构建(构建环境要求 Python ≥ 3.11,WPPM 自身要求 Python ≥ 3.10,见 README.rst),因此本文的价值在于存档与机制解读,而非可直接套用的现行操作手册。

版本定位:一个什么样的发行版

WinPython 是面向 Windows 的便携版(portable)Python 发行版:解压即用,不写入系统 Python、不污染系统 PATH,自带预编译的科学计算二进制包。2.7.10.2 这个编号对应 Python 2.7.10 语言的第二个修订发布(第 3 位数字是修订号)。

该版本的技术底座在包清单中一览无余:

  • Python 2.7.10:语言本体与标准库;
  • numpy 1.9.2+mkl:多维数组核心,+mkl后缀表明链接了 Intel MKL 数学库;
  • scipy 0.16.0:科学计算库(高级数学、信号处理、优化、统计);
  • matplotlib 1.4.3:2D 绘图库(可嵌入 PyQt 创建的 GUI)。

随发行版提供的唯一外部工具是SciTE 3.3.7——基于 Scintilla 引擎的多语言轻量文本编辑器。对比上一版 2.7.10.1(changelogs/WinPython-2.7.10.1.md)的 Tools 区,2.7.10.2 移除了MinGW32 4.9.2(C/C++/Fortran 编译器静态工具链)与gettext 0.14.4(GNU 翻译工具的 Win32 移植),工具面收缩为仅 SciTE,编译需求改由 Python 包层面的mingwpy(见下文“新增包”)承接。

完整包清单:2.7.10.2 随附的全部 Python 包

以下表格完整继承自发行版清单原文,按领域分组编排(组内按字母序),共 147 个包,版本与描述均以 changelogs/WinPython-2.7.10.2.md 为准。

语言核心与包管理工具

名称版本描述
Python2.7.10Python 编程语言及标准库
pip7.1.0安装与管理 Python 包的工具
setuptools17.1.1下载、构建、安装、升级、卸载 Python 包
wheel0.24.0Python 构建包格式
pkginfo1.2.1查询 sdist / bdist / 已安装包中的元数据
twine1.5.0与 PyPI 交互的工具集

数值计算与科学计算核心

名称版本描述
numpy1.9.2+mklNumPy:面向数字、字符串、记录与对象的多维数组处理(SciPy 的核心模块)
scipy0.16.0SciPy:Python 科学计算库(高级数学、信号处理、优化、统计……)
sympy0.7.6符号数学库
numexpr2.4.3基于向量虚拟机的数组表达式快速求值
lmfit0.8.3带边界与约束的最小二乘最小化
cvxopt1.1.7凸优化库
PuLP1.5.9Python 线性规划建模器,可调用 GLPK、COIN CLP/CBC、CPLEX、GUROBI 求解
statsmodels0.6.1配合 SciPy 使用的统计计算与模型库
patsy0.4.0使用符号公式描述统计模型
networkx1.9.1图与网络创建、操作库
tables3.2.1基于 HDF5 的层次数据集管理包(面向超大数据量)
ViTables2.1浏览与编辑 HDF5 / PyTables 文件的图形工具
h5py2.5.0HDF5 文件的通用 Python 接口(直接访问完整 HDF5 C 库)
pyhdf0.8.3HDF4 文件的 Python 接口
netCDF41.1.9netCDF 库(3 与 4 版)的 python/numpy 接口

机器学习、深度学习与高性能计算

名称版本描述
scikit_learn0.16.1机器学习与数据挖掘模块集
Theano0.7.0在 CPU/GPU 上求值数学表达式的优化编译器
Keras0.1.2基于 Theano 的深度学习库
numba0.20.0使用 LLVM 编译 Python 代码
llvmlite0.6.0基础 LLVM 功能的轻量封装
joblib0.8.4轻量级流水线:把 Python 函数当作流水线作业
cyordereddict0.2.2collections.OrderedDict 的 Cython 实现
cytoolz0.7.3Toolz 的 Cython 实现:高性能函数式工具
bcolz0.10.0列式压缩数据容器

并行、分布式数据栈

名称版本描述
dask0.6.1极简任务调度抽象
blaze0.8.2Blaze(可扩展数据结构项目)
datashape0.4.6数据描述语言
odo0.3.3Python 中的数据迁移
partd0.3.2可追加的键值存储
locket.py0.2.0Linux 与 Windows 下的文件锁
greenlet0.4.7进程内轻量级并发
xray0.5.2Python 中的 N 维带标签数组与数据集

可视化与 GUI

名称版本描述
matplotlib1.4.32D 绘图库(可嵌入 PyQt 创建的 GUI)
pyqtgraph0.9.10Python 科学绘图与 GUI 库
seaborn0.6.0统计数据可视化
bokeh0.9.2Python 的统计与新颖交互式 HTML 图表
holoviews1.3.2可组合、声明式的数据结构,便于构建复杂可视化
mpld30.2Matplotlib 的 D3 查看器
brewer2mpl1.4.1将 ColorBrewer2 色板连接 Python 与 matplotlib
husl4.0.2面向人类的 HSL(色相-饱和-亮度)色彩模型
PyQt44.11.4Qt 跨平台 GUI 工具包的 Python 绑定
PyQtdesignerplugins1.1为 PyQt4 安装 Qt Designer 插件(Matplotlib、guiqwt 等)
PyQwt5.2.12D 绘图库(Qwt 库的 Python 绑定,高速绘图)
guiqwt2.3.2高效曲线/图像绘制与科学数据处理 GUI 工具
guidata1.6.2自动生成图形用户界面,便于数据集编辑与显示
formlayout1.0.15免 GUI 代码创建参数编辑对话框/控件
PyOpenGL3.1.0OpenGL 及相关 API 的跨平台 Python 绑定
Polygon22.0.7Python 2 下处理二维多边形形状的包
scikit_image0.11.3SciPy 的图像处理工具箱
Pillow2.9.0Python 图像库(PIL 的分支)
spyder2.3.5.2Scientific PYthon Development EnviRonment:交互式计算与数据可视化 IDE
ipython3.2.1增强版 Python 解释器(shell)
pyzmq14.7.0基于 ZeroMQ 的轻量极速消息库(IPython Qt console 依赖)

数据读写与办公格式

名称版本描述
pandas0.16.2数据分析、时间序列与统计的强大数据结构
xlrd0.9.4从 Microsoft Excel 表格文件中提取数据
XlsxWriter0.7.3创建 Excel XLSX 文件的 Python 模块
simplejson3.8.0简洁、快速、可扩展的 JSON 编解码器
PyYAML3.11Python 的 YAML 解析与生成器
python_dateutil2.4.2标准 datetime 模块的强力扩展
pytz2015.4Python 的世界时区定义
prettytable0.7.2以美观 ASCII 表格展示二维数据的简单库
xlsx/json 无关的 db.py0.4.4“不糟糕的”数据库访问包

数据库与消息中间件

名称版本描述
SQLAlchemy1.0.8SQL 工具包与对象关系映射器(ORM)
pyodbc3.0.10ODBC 的 DB-API 模块
adodbapi2.6.0.7纯 Python 实现、基于 Microsoft ADO 的 PEP 249 DB-API
mysql_connector_python2.0.4Python 编写的 MySQL 驱动
pg80001.10.2PostgreSQL 接口库
pymongo3.0.3MongoDB 的 Python 驱动
redis2.10.3Redis 键值存储的 Python 客户端
ipython_sql0.3.6经 IPython 访问关系型数据库
sqlparse0.1.15非验证式 SQL 解析器
sqlite_bro0.8.8单文件图形化 SQLite 客户端
baresql0.7.1直接对 Python 数据执行 SQL

网络、Web 开发与 API

名称版本描述
requests2.7.0Apache2 许可、面向人类的 HTTP 库
tornado4.2.1可扩展非阻塞 Web 服务器及工具(IPython notebook 依赖)
Flask0.10.1基于 Werkzeug、Jinja2 与好意(good intentions)的微框架
Werkzeug0.10.4Python Web 开发的“瑞士军刀”
wsgiref0.1.2WSGI(PEP 333)参考库
itsdangerous0.24在不受信环境中传递可信数据的辅助工具
twitter1.17.0Twitter 的 API 与命令行工具集
beautifulsoup44.4.0网页抓取库

模板引擎与 Markdown 生态

名称版本描述
Jinja22.7.3沙盒化模板引擎(类 Django 非 XML 语法,模板编译为可执行 Python 代码)
MarkupSafe0.23Python 的 XML/HTML/XHTML 安全标记字符串
pybars30.9.1Python 2/3 的 Handlebars.js 模板支持
PyMeta30.5.1基于 Meta 的 Python 2/3 模式匹配语言
pystache0.5.4Python 的 Mustache
Markdown2.6.2Python 的 Markdown 实现
mistune0.7受 marked 启发的纯 Python 最快 Markdown 解析器

文档生成

名称版本描述
Sphinx1.3.1以 reStructuredText 为标记语言的文档生成工具
docutils0.12将纯文本文档处理为 HTML/LaTeX 等格式(含 reStructuredText)
alabaster0.7.6可配置侧边栏的 Sphinx 主题
sphinx_rtd_theme0.1.8ReadTheDocs.org 的 Sphinx 主题(2013 版)
numpydoc0.5支持 NumPy 风格 docstring 的 Sphinx 扩展
Babel1.3国际化工具

静态检查、重构与开发辅助

名称版本描述
pylint1.4.3Logilab 代码分析模块:查找 Bug 与低质量迹象
astroid1.3.6从 Python ast 重建抽象语法树(pylint 依赖)
logilab_common1.0.2Logilab 项目集底层包(pylint 依赖)
pyflakes0.9.2Python 程序被动检查器
pep81.6.2Python 风格指南检查器
rope0.10.2Python 重构库
nose1.3.7基于发现的 unittest 扩展(NumPy 测试模块即使用 nose)

语言互操作(R / Octave / Scilab / Julia)

名称版本描述
rpy22.6.1Python 到 R 语言的接口(嵌入式 R)
oct2py3.3.0Python 到 GNU Octave 桥——从 Python 运行 m 文件
scilab2py0.6Python 到 Scilab 桥
julia0.1.1.8Python 到 Julia 语言的接口

系统、进程与端口

名称版本描述
psutil3.1.1可移植地获取全部进程与系统资源(CPU、磁盘、内存、网络)信息
pyserial2.7封装串口访问的库
PyAudio0.2.8跨平台音频流库 PortAudio v19 的绑定
pywin32219Windows 的 Python 库

文本解析、函数式与兼容性

名称版本描述
pyparsing2.0.3Python 解析模块
lxml3.4.4结合 libxml2/libxslt 与 ElementTree API 的强大 Pythonic XML 库
click4.1optparse 之上的简单封装,用于构建强力命令行工具
docopt0.6.2让你微笑的 Pythonic 参数解析器
dill0.2.3序列化几乎所有 Python 对象
multipledispatch0.4.8相对合理的 Python 多重分派方案
singledispatch3.4.0.3将 Python 3.4 的 functools.singledispatch 带回 2.6–3.3
decorator3.4.2用装饰器改善 Python 开发体验
funcsigs0.4为 Python 2.6/2.7 与 3.2+ 提供 PEP 362 函数签名
cython0.22.1让编写 C 扩展与写 Python 一样简单的语言
six1.9.0Python 2/3 兼容工具
enum341.0.4将 Python 3.4 Enum 带回 3.3/3.2/3.1/2.7/2.6/2.5/2.4
configparser3.5.0b2将 3.5 的更新版 configparser 带回 2.6–3.5
backports.ssl_match_hostname3.4.0.2Python 3.4 的 ssl.match_hostname()
colorama0.3.3跨平台彩色终端文本

工具链、打包与杂项

名称版本描述
mingwpy0.1.0b3对 Python 友好的 Windows 编译器工具链
cx_Freeze4.3.4把 Python 脚本转换为独立 Windows 可执行文件的部署工具
cffi1.1.2调用 C 代码的 Python 外部函数接口
pycparser2.14Python 中的 C 解析器
fonttools2.4字体文件操作工具
TTFQuery1.0.5基于 FontTools 的查询系统字体包
reportlab3.2.0PDF 生成库
pygments2.0.2通用语法高亮器
snowballstemmer1.2.0提供 16 个 Snowball 词干算法(含 Poerter 英语词干器)
nltk3.0.4自然语言工具包(NLTK)
winpython1.1WinPython 发行版工具,含 WPPM(包管理器)

说明:上表按领域分组以便阅读,与原文档的单表一一对应,无增删条目;原文描述中个别笔误(如 SciPy 条目里的双引号)已按原义整理。

相对 2.7.10.1 的变更档案

变更历史(changelogs/WinPython-2.7.10.2_History.md)将本次迭代分为新增、升级、移除三类。总计:新增 15 个包,升级 30 个包,移除 5 个包 + 2 个工具。

工具区变更

移除:

  • MinGW32 4.9.2:C/C++ 与 Fortran 编译器(Mingwpy 静态工具链版);
  • gettext 0.14.4:GNU gettext Win32 移植(GNU 翻译工具,pygettext 标准库模块的有用工具)。

工具面收窄为仅 SciTE。值得注意的是,编译能力并未完全消失——mingwpy 0.1.0b3作为 Python 包新增进来(“对 Python 友好的 Windows 编译器工具链”),编译工具链的定位从“发行版自带 exe 工具”转向“pip 可管理的 Python 包”,这与发行版保持便携、可再打包的总体取向一致。

新增的 15 个包

  • blaze 0.8.2(Blaze)、dask 依赖群:locket.py 0.2.0(Linux/Windows 文件锁)、partd 0.3.2(可追加键值存储)、greenlet 0.4.7(进程内轻量并发)——这批包围绕 dask/Blaze 并行计算栈补齐依赖;
  • xray 0.5.2:N 维带标签数组与数据集,N 维科学数据分析的新方向;
  • bokeh 0.9.2:交互式 HTML 图表;holoviews 1.3.2+param 1.3.2:声明式、可组合的可视化体系(param 是 holoviews 的声明式参数基座);
  • netCDF4 1.1.9:netCDF 3/4 的 python/numpy 接口,面向气象、地球科学领域的数据;
  • PyAudio 0.2.8:PortAudio v19 绑定,跨平台音频输入输出;
  • Markdown 2.6.2:Python 的 Markdown 实现;
  • pystache 0.5.4:Python 的 Mustache 模板;
  • twitter 1.17.0:Twitter API 与命令行工具集;
  • mingwpy 0.1.0b3:Windows 编译工具链(上文所述,承接被移除的 MinGW32 工具)。

可以看出新增包集中在三条线:并行/分布式数据栈(dask、xray、blaze)、现代可视化(bokeh、holoviews)、以及与主流发行版 2015 年生态对齐的补齐(netCDF4、Markdown、PyAudio)。

升级的 30 个包

  • 科学计算核心:scipy 0.15.1 →0.16.0、seaborn 0.5.1 → 0.6.0、nltk 3.0.2 → 3.0.4、tables 3.2.0 → 3.2.1;
  • 高性能编译:numba 0.19.2 →0.20.0(配套 llvmlite 0.5.1 → 0.6.0);
  • 数据栈:dask 0.5.0 → 0.6.1、datashape 0.4.5 → 0.4.6、odo 0.3.2 → 0.3.3、bcolz 0.9.0 → 0.10.0;
  • Web/网络:tornado 4.2 → 4.2.1、click 4.0 → 4.1、mistune 0.5.1 → 0.7;
  • 数据库:SQLAlchemy 1.0.5 → 1.0.8、pymongo 3.0.2 → 3.0.3、pyodbc 3.0.9 → 3.0.10;
  • 文档工具链:alabaster 0.7.4 → 0.7.6(Sphinx 主题);
  • 图像与交互:Pillow 2.8.2 → 2.9.0、ipython 3.2.0 → 3.2.1;
  • 语言互操作:rpy2 2.6.0 → 2.6.1、oct2py 3.2.0 → 3.3.0;
  • 工具与底层:pip 7.0.3 → 7.1.0、psutil 3.0.0 → 3.1.1、simplejson 3.7.3 → 3.8.0、xlrd 0.9.3 → 0.9.4、logilab_common 0.63.2 → 1.0.2、multipledispatch 0.4.7 → 0.4.8、dill 0.2.2 → 0.2.3、beautifulsoup4 4.3.2 → 4.4.0、Keras 0.1.1 → 0.1.2、patsy 0.3.0 → 0.4.0。

其中numba 0.19.2 → 0.20.0 与 llvmlite 0.5.1 → 0.6.0 的同步升级是典型的“绑定成对升级”:numba 依赖 llvmlite 提供的 LLVM 封装,二者版本必须匹配。

移除的 5 个包

  • VPython 5.74:实时 3D 场景模块;
  • ggplot 0.6.5:Python 版 ggplot;
  • mahotas 1.2.4:计算机视觉库;
  • runipy 0.1.3:命令行运行 IPython notebook;
  • vispy 0.4.0:交互式可视化。

移除面主要是可视化/3D 类实验性包,与新增的 bokeh/holoviews/xray 形成此消彼长:2.7.10.2 把可视化重心从“3D 实验包”转向“交互式 HTML 与 N 维数据集”。

清单是如何生成的:WPPM 工具链源码解析

仓库中的changelogs/目录存放着历次发行的包索引,_History文件则是相对上一版本的差异。它们的生成逻辑可以直接在仓库源码中读到。

包索引生成:generate_package_index_markdown

构建流程的 Step 7 会调用 WPPM 的包索引生成器(见 winpython/build_winpython.py):

cmd = ["set", f"WINPYVER2={winpyver2}&", "set", f"WINPYFLAVOR={args.flavor}&", "set", f"WINPYVER={winpyver2}{args.flavor}{args.release_level}&", str(target_python), "-X", "utf8", "-c" , ( "from wppm import wppm;" "result = wppm.Distribution().generate_package_index_markdown();" f"open(r'{winpydirbase.parent / mdn}', 'w', encoding='utf-8').write(result)" )] run_command(cmd, shell=True) shutil.copyfile (winpydirbase.parent / mdn, changelog_dir / mdn)

其实现位于 wppm/wppm.py:

def generate_package_index_markdown(self, python_executable_directory: str|None = None, winpyver2: str|None = None, flavor: str|None = None, release_level: str|None = None, wheeldir: str|None = None) -> str: """Generates a Markdown formatted package index page.""" data = self.get_package_index_data(python_executable_directory, winpyver2, flavor, release_level, wheeldir) ... return f"""## {d["name"]} {d["version"]} The following packages are included in {d["name"]}-{d["architecture_bits"]}bit v{d["version"]} {d["release_level"]}. {self.render_markdown_for_list("Tools", as_tuples(data["tools"]))} {self.render_markdown_for_list("Python packages", as_tuples(data["packages"]))} {self.render_markdown_for_list("WheelHouse packages", as_tuples(data["wheelhouse"]))} """

即:以“目标发行版自身的解释器”运行wppm,枚举已安装包与 wheelhouse,渲染出### Tools/### Python packages(新版还有### WheelHouse packages)分区的 Markdown 表,再复制进changelogs/。本文引用的 2.7.10.2 清单(标题形如The following packages are included in WinPython v2.7.10.2.)属于早期版本按同构格式产出的存档。

变更历史生成:wppm 的 diff 比对

_History文件由 Step 7 的后半段生成(winpython/build_winpython.py),调用wppm.diff.compare_package_indexes(版本, searchdir, flavor, architecture):它与changelogs/中“同风味(flavor)、同架构”的最近一次发行索引做差集。解析与比对逻辑在 wppm/diff.py:

  • Package类用两种正则兼容 SourceForge 与 Google Code 风格的索引行格式(名称 | 版本 | 描述);
  • PackageIndex按### Tools/### Python packages/### WheelHouse packages三个表头切分区,逐行解析为包对象;
  • compare_packages对包名做规范化(-→_、小写)后,按“新增 / 升级 / 移除”三类输出——这正是 2.7.10.2 History 文件中New packages:/Upgraded packages:/Removed packages:三个小节的来源,升级条目渲染为旧版本 → 新版本。

构建脚本还特别说明(winpython/build_winpython.py 的注释):这份“相对上一版的变化”只留在构建产物旁供发布者自查,不会作为对上一版的 diff 公开发布——因为风味(flavor)在周期间会生灭,读者大约一年升级一次,直接对比任意两份索引更有意义。读者可以任选两份索引自行比对,例如 2.7.10.1 与 2.7.10.2:

python -m wppm -diff changelogs\WinPython-2.7.10.1.md changelogs\WinPython-2.7.10.2.md

(-diff用法见构建脚本注释中对wppm -diff <a>.md <b>.md的说明;WPPM 的完整子命令与参数见 README_PYPI.md。)

发行版装配流程概览

从 winpython/build_winpython.py 的main()可以还原一个完整发行版的装配步骤:

  1. Step 1清理旧构建目录(delete_folder_if_exists,仅当目录名与风味匹配时);
  2. Step 2由构建环境的python.exe运行make.make_all,把目标 Python 落地为可移动目录(winpydirbase),并校验存在scripts/env.bat(check_env_bat,winpython/build_winpython.py)——这是 WinPython 便携环境的核心入口:运行时先call scripts\env.bat设定WINPYDIR等变量再使用发行版内的解释器;
  3. Step 3以--no-index --find-links=<wheelhouse> --upgrade从本地 wheelhouse 离线安装 mandatory 与主 requirements(pip_install,winpython/build_winpython.py),默认--only-binary=:all:保证缺 wheel 时直接失败而非在构建机上现场编译;
  4. Step 4便携化补丁:wppm.Distribution().patch_standard_packages('', to_movable=True)(patch_winpython)。具体动作可在 wppm/wppm.py 看到:pywin32 的 DLL 拷贝、pip 生成器 shebang 改写(保证 launcher 随目录移动仍可用)、把spyder的check_updates_on_startup从True改为False(“spyder don't goes on internet without you ask”)——最后一条正是 2.7.10.2 随附的 spyder 2.3.5.2 在 WinPython 环境中的行为依据;
  5. Step 5/6处理 wheelhouse 需求并生成带 hash256 的pylock.*.toml/requir.*.txt锁定文件(generate_lockfiles,同时比对 web 与 local 两条锁的一致性);
  6. Step 7生成本文引用的 changelog 与 History;
  7. Step 8(可选)用 7-Zip 生成安装器。

这些锁文件与需求文件的产物命名(pylock.64-*.toml、requir.64-*.txt)与仓库中 winpython/portable/ 各构建周期目录下的现存文件一一对应,可以对照阅读以理解“需求 → 锁 → 发行版”的完整链路。

如何核对本文数据

本文全部事实均可在当前仓库内复核:

  • 2.7.10.2 完整包清单:changelogs/WinPython-2.7.10.2.md;
  • 2.7.10.1 → 2.7.10.2 变更:changelogs/WinPython-2.7.10.2_History.md;
  • 上一版索引(用于交叉验证“升级前版本”):changelogs/WinPython-2.7.10.1.md;
  • 索引/差异生成实现:wppm/wppm.py、wppm/diff.py;
  • 发行版装配与构建参数:winpython/build_winpython.py、入口脚本 generate_a_winpython_distropy_meta.bat。

适用前提与限制再次强调:Python 2.7 已于 2020 年停止维护,文中版本(numpy 1.9.2+mkl、scipy 0.16.0、spyder 2.3.5.2 等)是 2015 年生态的历史快照,其中的链接目标与包能力不应外推到当前版本;若需复现或对比任意两个发行版的包差异,使用仓库内wppm -diff对changelogs/下的索引文件执行即可。

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

【免费下载链接】winpython

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

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

相关推荐

上一篇:免费文件转换服务选型:Stack on a Budget 中 Cloudinary、Filestack 与 PDFSpark 的免费套餐实战解读
下一篇:Formily 重置按钮 Reset 全面指南:@formily/antd 普通重置、强制清空与重置校验实战

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

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进