☰
WinPython 3.4.4.5 发行版全解析:200+ 预编译科学计算包清单、变更历史与构建机制
2026/10/15 10:10:53 网站建设 项目流程
  • 开发工具
  • 构建工具
  • CLI
  • 包管理器

【免费下载链接】winpython

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

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

导读

本文以 changelogs/WinPython-3.4.4.5.md 为骨架,系统梳理 WinPython 3.4.4.5(Python 3.4.4 时代面向 Windows 的便携式科学计算发行版)内置的全部工具与 Python 包清单,对照 changelogs/WinPython-3.4.4.5_History.md 还原自 3.4.4.3 以来的新增与升级明细,并结合当前仓库源码(winpython/build_winpython.py、wppm/wppm.py、wppm/diff.py)解释这类包清单与变更历史文档是如何被自动生成的。读者读完后,既能按图索骥掌握 3.4.4.5 发行版的完整生态构成,也能理解 WinPython 发行版"包索引 → 变更对比 → 发布文档"的自动化流水线。

发行版概览:3.4.4.5 在 WinPython 版本体系中的位置

WinPython 是面向 Windows 平台的便携式 Python 发行版,其核心价值在于预编译:所有第三方包均已针对 Windows 架构编译为 wheel,开箱即用,无需本机编译工具链。3.4.4.5 是 3.4.x 系列后期的一个维护型快照,版本号3.4.4.5可拆解为:

  • 3.4.4:内置 Python 版本为 3.4.4;
  • .5:WinPython 发行序号(build number),表示这是基于 Python 3.4.4 的第 5 次发行快照。

整个发行包含两部分:Tools(独立于 Python 的辅助工具,本版仅 Pandoc 一项)与Python packages(约 210 个预编译包,覆盖科学计算、机器学习、可视化、Jupyter 交互、数据库、Web 开发等方向)。该清单由仓库中 wppm/wppm.py 的generate_package_index_markdown()方法按固定模板生成(详见下文"包清单文档的生成机制"一节)。

内置工具(Tools):Pandoc 1.17.2

3.4.4.5 发行包仅捆绑一个独立工具:

名称版本说明
Pandoc1.17.2通用文档转换器(universal document converter),可在 Markdown、reStructuredText、HTML、LaTeX、docx 等格式之间互转

该工具由t目录(tools 目录)随发行版一起打包。现代构建流程中,工具的存放目录通过 winpython_builds.toml 中每个 flavor 的toolsdirs配置指定(例如bdTools\Tools.dot、bdTools\tools64_pandoc_alone),构建时由 winpython/make.py 的copy_items()统一拷贝到发行目录的t子目录。与之配套,发行版还包含纯 Python 的pypandoc1.3.2(Pandoc 的薄封装),二者共同构成文档转换能力。

Python 包全景:按功能域划分的完整清单

下表完整继承自原文档,包名、版本、描述均以原清单为准(原文档中每个包名附带的 PyPI 等外部链接已省略,可回查 changelogs/WinPython-3.4.4.5.md 原文)。为便于检索,按功能域分组排列。

解释器、打包与发行基础设施

包名版本说明
Python3.4.4Python 编程语言及其标准库
pip8.1.2Python 包安装与管理工具
setuptools28.7.1下载、构建、安装、升级、卸载 Python 包
wheel0.29.0Python 内置包格式
winpython1.7.20161101WinPython 发行工具集,含 WPPM 包管理器
cx-freeze4.3.4将 Python 脚本打包为独立 Windows 可执行文件
mingwpy0.1.0b3面向 Python 的 Windows 编译器工具链
cython0.25.1以接近 Python 的语法编写 C 扩展的语言
mkl-service1.1.2若干 MKL 服务函数的 Python 绑定

科学计算核心栈

包名版本说明
numpy1.11.2多维数组处理核心(SciPy 的核心模块)
scipy0.18.1科学计算库:高等数学、信号处理、优化、统计
pandas0.19.1数据分析、时间序列与统计的高性能数据结构
xarray0.8.2N 维带标签数组与数据集
bottleneck1.2.0用 Cython 编写的快速 NumPy 数组函数
numexpr2.6.1基于向量化虚拟机的数组表达式快速求值
blosc1.4.4Blosc 数据压缩器
bcolz1.1.0列式压缩数据容器
zarr2.1.3分块、压缩的 N 维数组最小实现
bloscpack0.11.0Blosc 的命令行接口与序列化格式
h5py2.6.0HDF5 文件接口(直接访问完整 HDF5 C 库)
tables3.3.0基于 HDF5 的分层数据集管理(可处理极大数据量)
netcdf41.2.4netCDF 库(3、4 版)的 Python/NumPy 接口
python-hdf40.9NCSA HDF4 库的 Python 接口
numba0.29.0基于 LLVM 的 Python 代码即时编译
llvmlite0.14.0基础 LLVM 功能的轻量封装
dask0.12.0极简任务调度抽象
distributed1.14.0分布式计算
toolz / cytoolz0.8.0 / 0.8.0列表处理与函数式工具(Cython 高性能版)
partd0.3.6可追加的键值存储
heapdict1.0.0支持 decrease-key / increase-key 的堆
zict0.1.0可变映射工具
blaze0.10.1Blaze 数据分析引擎
datashape0.5.2数据描述语言
odo0.5.0Python 数据迁移
multipledispatch0.4.9相对合理的多分派实现

机器学习、深度学习与统计建模

包名版本说明
scikit-learn0.18机器学习与数据挖掘模块集
scikit-image0.12.3面向 SciPy 的图像处理工具箱
scikit-neuralnetwork0.7兼容 scikit-learn 的深度神经网络封装
scikit-optimize0.2基于序贯模型的优化工具箱
theano0.8.2面向 CPU/GPU 的数学表达式优化编译器
keras1.1.1基于 Theano 的深度学习库
lasagne0.2.dev1面向 Theano 的神经网络工具
pymc2.3.6马尔可夫链蒙特卡洛(MCMC)采样工具箱
pymc33.0rc2MCMC 采样工具箱(3.x 系列)
emcee2.2.1仿射不变系综 MCMC 采样
statsmodels0.8.0rc1基于 SciPy 的统计计算与模型
pyflux0.4.0开源时间序列库
lmfit0.9.5带边界与约束的最小二乘拟合
numdifftools0.9.17单/多变量自动数值微分
algopy0.5.3Taylor 算术计算与算法微分
astroml0.3天文学机器学习与数据挖掘工具
cvxopt1.1.7凸优化包
pulp1.6.1LP 建模器,可调用 GLPK、COIN CLP/CBC、CPLEX、GUROBI 求解

可视化

包名版本说明
matplotlib1.5.32D 绘图库(可嵌入 PyQt GUI)
seaborn0.8.dev0统计数据可视化
bokeh0.12.3Python 交互式 HTML 统计绘图
altair1.1.0.dev0高层声明式可视化库
holoviews1.6.2可组合、声明式的复杂可视化数据结构
mpld30.2Matplotlib 的 D3 查看器
bqplot0.8.4基于 d3.js 与 ipywidgets 的 Jupyter 交互绘图
vega0.4.4Vega / Vega-Lite 的 IPython/Jupyter widget
ipyleaflet0.2.1动态 Leaflet 地图的 Jupyter widget
wordcloud1.2.1词云生成器
brewer2mpl1.4.1将 colorbrewer2.org 色图接入 Python 与 matplotlib
husl4.0.3更人性化的 HSL 颜色空间
pyqtgraph0.9.10科学绘图与 GUI 库
guiqwt3.0.3高效曲线/图像绘图与科学数据处理 GUI 工具
pythonqwt / pyqwt0.5.5 / 5.2.1基于 Qwt 的 Qt 快速绘图绑定
qtawesome0.3.3PyQt/PySide 应用中的 FontAwesome 图标

交互环境与 Jupyter 生态

包名版本说明
jupyter1.0.0Jupyter 元包,一次装齐全部组件
notebook4.2.3Jupyter Notebook
ipython5.1.0增强版 Python Shell
ipykernel4.5.0Jupyter 的 IPython 内核
ipywidgets5.2.2Jupyter 的 IPython HTML widgets
widgetsnbextension1.2.6Jupyter 的 IPython HTML widgets
qtconsole4.2.1Jupyter Qt 控制台
jupyter-client4.4.0Jupyter 元包组件
jupyter-console5.0.0Jupyter 元包组件
jupyter-core4.2.0Jupyter 元包组件
nbconvert4.2.0Jupyter Notebook 格式转换
nbconvert-reportlab0.1Jupyter Notebook 转换(reportlab 支持)
nbformat4.1.0Jupyter Notebook 格式
nbsphinx0.2.10面向 Sphinx 的 Jupyter Notebook 工具
ipython-sql0.3.8通过 IPython 访问 RDBMS
ipython-genutils0.1.0从 IPython 剥离的遗留工具
ipyparallel5.2.0基于 IPython 的交互式并行计算
prompt-toolkit1.0.8构建强大交互式命令行
ptpython0.36基于 prompt_toolkit 的 Python REPL
jedi0.9.0面向文本编辑器的自动补全工具
traitlets / traittypes4.3.1 / 0.0.6Traitlets 配置系统及 SciPy 特质类型
entrypoints0.2.2从已安装包发现并加载入口点
pickleshare0.7.4支持并发的类 shelve 微型数据库
mistune0.7.3纯 Python 最快的 Markdown 解析器
pyzmq15.4.0基于 ZeroMQ 的轻量高速消息传递(IPython Qt 控制台依赖)

IDE 与 GUI 工具

包名版本说明
spyder3.1.0.dev0科学 Python 开发环境:面向交互计算与可视化
pyqt44.11.4Qt 跨平台 GUI 工具包的 Python 绑定
qtpy1.1.2各 Qt 绑定(PyQt5、PyQt4、PySide)之上的抽象层
pyqtdesignerplugins1.1安装 Python Qt Designer 插件(Matplotlib、guiqwt 等)
formlayout1.1.0免写 GUI 代码创建参数编辑表单/控件
guidata1.7.6自动生成的数据编辑与显示 GUI
sqlite-bro0.8.11单文件 Python 实现的图形化 SQLite 客户端
vitables2.1浏览与编辑 HDF5/PyTables 文件的图形工具
idlex1.13IDLE 扩展
pyaudio0.2.9PortAudio v19 绑定(跨平台音频输入/输出)
pyserial3.1.1串口访问封装库

数据库与数据访问

包名版本说明
sqlalchemy1.1.3SQL 工具包与对象关系映射器
adodbapi2.6.0.7基于 Microsoft ADO 实现 PEP 249 DB-API 的纯 Python 包
pyodbc3.0.10ODBC 的 DB-API 模块
mysql-connector-python2.0.4纯 Python MySQL 驱动
pg80001.10.5PostgreSQL 接口库
pymongo3.3.0MongoDB 的 Python 驱动
redis2.10.5Redis 键值存储的 Python 客户端
baresql0.7.4直接在 Python 数据上执行 SQL
db.py0.5.2好用的数据库包
sqlparse0.2.2非校验型 SQL 解析器
pandas-datareader0.2.1从 pandas 代码库抽取的数据读取器

Web 开发与网络

包名版本说明
flask0.11.1基于 Werkzeug、Jinja2 的微框架
flask-cors2.1.2提供 CORS 装饰器的 Flask 扩展
werkzeug0.11.11Python Web 开发的瑞士军刀
jinja22.8沙箱模板引擎(类 Django 非 XML 语法,编译为可执行 Python)
markupsafe0.23XML/HTML/XHTML 安全字符串
itsdangerous0.24向不可信环境安全传递受信数据
click6.6强大的命令行工具包装
tornado4.4.2可扩展的非阻塞 Web 服务器与工具(IPython notebook 依赖)
requests2.11.1为人类设计的 HTTP 库
requests-file / requests-toolbelt1.4 / 0.7.0requests 的文件传输与工具箱扩展
boto3 / botocore1.3.1 / 1.4.36AWS SDK for Python 及底层数据驱动核心
s3fs0.0.7基于 S3 的文件系统接口
jmespath0.9.0JSON 匹配表达式
geopy1.11.0Python 地理编码工具箱
twitter1.17.1Twitter API 与命令行工具集
lxml3.6.4融合 libxml2/libxslt 与 ElementTree API 的 XML 处理库
beautifulsoup44.5.1屏幕抓取(Screen-scraping)库
html5lib0.999999999基于 WHATWG HTML 规范的 HTML 解析器
webencodings0.5遗留 Web 内容的字符编码别名

符号计算、数学与其他科学工具

包名版本说明
sympy1.0符号数学库
mpmath0.19任意精度浮点运算库
networkx1.11图与网络的创建和操作
nltk3.2.1自然语言处理工具包
rpy22.7.8内嵌 R 的 Python 接口
oct2py3.5.9Python 与 GNU Octave 的桥接
scilab2py0.6Python 与 Scilab 的桥接
julia0.1.1Julia 语言的 Python 接口
numdifftools0.9.17数值微分问题求解
patsy0.4.1用符号公式描述统计模型
pdfrw0.3读写 PDF 的纯 Python 库
reportlab3.3.0PDF 生成库
xlrd / xlsxwriter1.0.0 / 0.9.3Excel 读取 / XLSX 文件创建
prettytable0.7.2以 ASCII 表格形式展示表格数据
pypandoc1.3.2Pandoc 的薄封装

文档工具链

包名版本说明
sphinx1.4.8以 reStructuredText 为标记语言的文档生成工具
sphinx-rtd-theme0.1.9Sphinx Read the Docs 主题
alabaster0.7.9可配置侧边栏的 Sphinx 主题
numpydoc0.6.0支持 NumPy 格式 docstring 的 Sphinx 扩展
docrepr0.1.0以 HTML 渲染 Python docstring
recommonmark0.4.0面向 docutils 的 Markdown 解析器
docutils0.12纯文本文档处理系统(含 reStructuredText,可输出 HTML/LaTeX)
pygments2.1.3通用语法高亮器
commonmark0.5.4CommonMark Markdown 规范的 Python 解析器
markdown2.6.7Markdown 的 Python 实现
snowballstemmer1.2.115 种词干算法 + Porter 英语词干
babel2.3.4国际化工具
imagesize0.7.1获取 png/jpeg/jpeg2000/gif 图片尺寸

系统、互操作与开发辅助

包名版本说明
pywin32220.1Windows 的 Python 库
pythonnet2.2.0.dev1Python 与 .Net/Mono 集成
pyopengl3.1.1OpenGL 及相关 API 的跨平台 Python 绑定
cffi1.8.3Python 调用 C 代码的外部函数接口
pycparser2.17Python 实现的 C 解析器
greenlet0.4.10轻量进程内并发编程
win-unicode-console0.5Windows 控制台运行 Python 时启用 Unicode 输入输出
colorama0.3.7跨平台彩色终端文本
psutil4.4.2跨平台进程信息与系统利用率(CPU、磁盘、内存、网络)
six1.10.0Python 2/3 兼容工具
wrapt1.10.8装饰器、包装与 monkey patching 模块
decorator4.0.10用装饰器改善 Python 编程
lazy-object-proxy1.2.2快速彻底的惰性对象代理
cyordereddict1.0.0collections.OrderedDict 的 Cython 实现
msgpack-python0.4.7MessagePack 序列化/反序列化
simplejson3.10.0简单、快速、可扩展的 JSON 编解码器
pyyaml3.12YAML 解析与生成
certifi2016.9.26Mozilla CA Bundle 的 Python 包
backports-abc0.4collections.abc 模块新特性的向后移植
monotonic1.2面向 Python 2 与 < 3.3 的 time.monotonic() 实现
cloudpickle0.2.1Python 对象的扩展序列化支持
tblib1.3.0回溯序列化库
joblib0.10.3轻量流水线:Python 函数作为管道作业
tqdm4.8.4简单 Python 进度条
fasteners0.14.1有用的锁
locket0.2.0Linux/Windows 基于文件的锁
clint0.5.1Python 命令行接口工具
docopt0.6.2人性化 Python 参数解析器
args0.1.0面向人类的命令行参数
rx1.5.3Python 响应式扩展(Rx)
param1.4.1基于 Parameters 的声明式 Python 编程
py1.4.31跨 Python 的路径、ini 解析、IO、代码、日志设施
python-dateutil2.5.3datetime 标准模块的强力扩展
pytz2016.7世界时区定义
wcwidth0.1.7测量宽字符终端列数
jsonschema2.5.1JSON Schema 校验实现
cycler0.10.0可组合的样式循环
pyparsing2.1.10Python 解析模块
simplegeneric0.8.1简单泛型函数(类似 len()、pickle.dump())
pymeta30.5.1基于 Meta 的 Python 3/2 模式匹配语言
pybars30.9.2Python 3/2 的 Handlebars.js 模板
pystache0.5.4Python 版 Mustache
clrmagic0.0.1a2使用 .NET 语言的 IPython cell magic
rope-py3k0.9.4.post1Python 重构库
pep8 / pycodestyle1.7.0 / 2.1.0Python 风格指南检查器
pyflakes1.3.0被动式 Python 程序检查器
pylint1.6.4代码分析模块:查找 bug 与代码质量隐患
astroid1.4.8从 Python ast 重建抽象语法树(pylint 依赖)
mccabe0.5.2McCabe 复杂度检查器(flake8 插件)
isort4.2.5Python 导入排序工具
nose1.3.7基于发现的 unittest 扩展(NumPy 测试模块使用)
pytest3.0.3简单强大的 Python 测试
pkginfo1.3.2查询 sdist/bdist/已安装包的元数据
twine1.8.1与 PyPI 交互的工具集
pygments2.1.3语法高亮(前文已列)

说明:numdifftools、pygments、mistune等少数包因功能交叉在不同分组中重复出现以方便检索,实际发行清单以 changelogs/WinPython-3.4.4.5.md 的原始顺序为准。

从 3.4.4.3 到 3.4.4.5:一次典型的小版本迭代

配套文档 changelogs/WinPython-3.4.4.5_History.md 记录了自 3.4.4.3 以来的全部变更,从中可以观察 WinPython 的维护节奏。

新增的 15 个包

包名版本说明
algopy0.5.3Taylor 算术计算与算法微分
altair1.1.0.dev0高层声明式可视化库
clrmagic0.0.1a2使用 .NET 语言的 IPython cell magic
heapdict1.0.0支持 decrease-key / increase-key 的堆
nbconvert-reportlab0.1Jupyter Notebook 转换(reportlab 支持)
numdifftools0.9.17数值微分问题求解
pdfrw0.3纯 Python 读写 PDF
pyflux0.4.0开源时间序列库
pypandoc1.3.2Pandoc 的薄封装
requests-file1.4requests 的文件传输扩展
scikit-optimize0.2基于序贯模型的优化工具箱
tqdm4.8.4简单 Python 进度条
traittypes0.0.6SciPy 特质类型
vega0.4.4Vega / Vega-Lite 的 Jupyter widget
webencodings0.5遗留 Web 内容字符编码别名
zict0.1.0可变映射工具

新增方向清晰:强化文档转换(pypandoc、pdfrw、nbconvert-reportlab)、可视化(altair、vega)、优化与微分(scikit-optimize、numdifftools、algopy)以及交互体验(tqdm、clrmagic、heapdict、zict)。

工具升级

  • Pandoc 1.13.1 → 1.17.2:通用文档转换器,跨 4 个小版本升级。

关键包升级(节选)

包名版本变化说明
numpy1.11.1 → 1.11.2科学计算核心维护升级
scipy0.18.0rc2 → 0.18.1从 RC 转正式发布
pandas0.18.1 → 0.19.1跨两个大版本
matplotlib1.5.2 → 1.5.3绘图库维护升级
scikit-learn0.17.1 → 0.18机器学习库跨大版本
ipython5.0.0 → 5.1.0交互环境升级
jupyter 系列notebook 4.2.1→4.2.3、jupyter-client 4.3.0→4.4.0、jupyter-core 4.1.0→4.2.0、ipykernel 4.3.1→4.5.0Jupyter 生态整体刷新
keras1.0.6 → 1.1.1深度学习库升级
numba0.27.0 → 0.29.0基于 LLVM 的 JIT 编译器升级
theano—保持在 0.8.2(未变)
spyder3.0.0.dev0 → 3.1.0.dev0IDE 升级
sqlalchemy1.0.14 → 1.1.3ORM 跨大版本
winpython1.6.20160625 → 1.7.20161101发行工具链(含 WPPM)升级
setuptools24.0.2 → 28.7.1打包工具大幅升级
pytest2.9.1 → 3.0.3测试框架跨大版本

此外还有 bokeh 0.11.1→0.12.3、holoviews 1.6.0→1.6.2、bqplot 0.7.1→0.8.4、dask 0.10.1→0.12.0、distributed 1.11.2→1.14.0、tables 3.2.3→3.3.0、cython 0.24.1→0.25.1、xarray 0.7.2→0.8.2、zarr 1.0.0→2.1.3、requests 2.10.0→2.11.1、psutil 4.3.0→4.4.2、pyzmq 15.3.0→15.4.0、lxml 3.6.0→3.6.4、bottleneck 1.1.0→1.2.0、emcee 2.1.0→2.2.1、seaborn 0.7.1→0.8.dev0、pymongo 3.2.2→3.3.0、tornado 4.4→4.4.2、pillow 3.3.0→3.4.2、pylint 1.6.1→1.6.4 等约 70 项升级,详见 changelogs/WinPython-3.4.4.5_History.md 全文。

包清单与变更历史文档的生成机制:源码级剖析

这份 changelog 并非手工维护,而是 WinPython 构建流水线的自动产物。理解其生成机制,有助于读者自行解读任何历史版本的清单。

包索引 Markdown 的生成

winpython/build_winpython.py 的 Step 7(generate changelog逻辑,约 L312-L347)在执行时调用:

from wppm import wppm result = wppm.Distribution().generate_package_index_markdown() open(r'<build-dir>/WinPython<flavor>-<arch>bit-<version>.md', 'w', encoding='utf-8').write(result)

在 wppm/wppm.py 中,generate_package_index_markdown()(L116-L132)组装出与本文开头完全一致的结构:

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"]))} """

其中每个表格由render_markdown_for_list()(wppm/wppm.py)渲染,格式固定为Name | Version | Description三列,并按包名排序;数据来源为get_package_index_data()(wppm/wppm.py),它调用pip list --format=full枚举发行目录site-packages中实际安装的包,并附带 wheelhouse(发行附带 wheel 库)信息。因此清单内容始终与发行目录的真实安装状态一致,这是"事实准确"的结构性保证。

变更历史的自动对比

changelogs/WinPython-3.4.4.5_History.md 由 wppm/diff.py 生成。构建脚本调用:

from wppm import diff result = diff.compare_package_indexes('3.4.4.5', searchdir=r'<changelogs>', flavor='', architecture=64)

其核心流程(wppm/diff.py):

  1. find_previous_version()(L153-L160)在 changelogs 目录中按 PEP 440 版本解析,找出当前版本之前最近的同 flavor/同架构索引(3.4.4.5 的上一个版本是 3.4.4.3);
  2. compare_packages()(L61-L74)对两份索引的包名做规范化(-→_、小写)后逐项比较,划分出New / Upgraded / Removed三类,并生成old → new形式的升级行;
  3. 表头写入History of changes for ... since version ...,文末追加* * *分隔符(L175-L182)。

由于文件名是版本的唯一来源,changelog_versions()(L129-L151)用正则WinPython<flavor>-<arch>bit-(.+)\.(txt|md)$匹配并交给packaging.version.parse解析,因此带b1之类 release level 的版本也能正确参与排序比较。diff.py同时支持命令行直接使用,例如wppm -diff <a>.md <b>.md或python -m wppm.diff --write-changelog <version2> <version1>手工对比任意两份索引(wppm/diff.py)。

如何构建一个类似 3.4.4.5 的发行版:现代构建流水线

虽然 3.4.4.5 是 2016 年的历史版本,但其构建模式在当前仓库中仍然延续,只是参数化程度更高。现代流程以 winpython_builds.toml 为单一事实来源:一个构建由(python_target, flavor)二元组描述,其余路径全部派生(winpython_builds.toml):

[defaults] root_dir_for_builds = "C:\\Winp" find_links = "C:\\Winp\\packages.srcreq" arch = "64" create_installer = "None" [flavors.dot] requirements = "dot_requirements.txt" source_dirs = "packages.win-amd64" toolsdirs = "bdTools\\Tools.dot" [pythons."313"] python_target_release = "31315" release = "1" my_release_level = "b1" builds = ["dot", "slim"]

对应到 3.4.4.5 时代的构建,则是 winpython/make.py 中的WinPythonDistributionBuilder:从python-*.zip解压出基础 Python 环境(_extract_python_archive(),L94-L101)、拷贝启动器与工具目录(_copy_essential_files(),L103-L110)、写入scripts/env.ini环境配置(_create_env_config(),L112-L126)。随后 winpython/build_winpython.py 的 8 个 Step 依次执行:清理旧构建 → make.py 建基座 →pip install安装 mandatory/requirements(L281-L291)→ 打补丁使启动器可移动 → 可选并行字节编译 → 安装 wheelhouse 依赖 → 生成 pylock/requir 锁文件 → 生成 changelog → 可选创建 7-Zip 安装包。

其中--bytecode参数(winpython/build_winpython.py)控制字节码编译策略:pip(默认,pip 内联编译)、none(不生成 .pyc,用于一次性构建)、parallel/parallel-N(先--no-compile再用compileall -j多核编译);--only-binary yes(默认)则强制只从 wheel 安装,缺失 wheel 立即失败而非在构建机上现场编译第三方代码(L233-L237)——这正是"预编译发行"承诺的落地保障。

现代视角:如何按 3.4.4.5 的思路复现包组合

如今要复现某个 WinPython 发行版的精确包组合,不再依赖手工清单,而是使用仓库提供的哈希锁文件。winpython/portable/下按构建周期(cycle_2025_04、cycle_2025_05、cycle_2026_01等)存放两类产物:

  • pylock.64-3_13_7_0dot.toml:pip 锁文件(含哈希);
  • requir.64-3_13_7_0dot.txt:带 hash256 的 requirements 文本(供尚不支持 pylock 的 pip 使用)。

按 README.rst 的说明,仅安装某发行版所组装的 wheel 集合可执行:

python -m pip install --no-deps --require-hashes <requir.64-3_13_7_0dot.txt 的 URL>

若包管理器支持 pylock,则直接使用对应.toml。锁文件由构建 Step 6 自动生成:先pip freeze出实际安装清单,再用pip lock --no-deps锁定到 web 与 local 两个源并校验一致性(winpython/build_winpython.py),保证"本地 wheelhouse 能装的组合"与"公网可下载的组合"完全一致——这与 3.4.4.5 的包清单所承诺的"开箱即用、版本确定"一脉相承。

结语

WinPython 3.4.4.5 的包清单文档,看似只是一张 200+ 行的表格,实则是整个发行工程体系的可视化截面:清单由构建流水线从真实安装环境自动生成,变更历史由版本化对比自动推导,包组合由锁文件可精确复现。读者既可以把它当作 2016 年科学计算 Python 生态的"快照地图",也可以顺着 wppm/wppm.py、wppm/diff.py 与 winpython/build_winpython.py 的源码,把"包清单 → 变更文档"这条自动化链路迁移到任何需要发布版本清单的软件项目中。

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

【免费下载链接】winpython

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

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

相关推荐

上一篇:ncmdump 完整指南:3 种方式把 NCM 转成 MP3,从单首到整目录
下一篇:NGA论坛优化摸鱼体验:4个快捷键把论坛界面调成你的样子

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

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

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

立即咨询