布解析:極簡(jiǎn) Python 發(fā)行版的關(guān)鍵包升級(jí)與新增組件)
開(kāi)發(fā)工具構(gòu)建工具CLI包管理器【免費(fèi)下載鏈接】winpythonA free Python-distribution for Windows platform, including prebuilt packages for Scientific Python.項(xiàng)目地址https://gitcode.com/gh_mirrors/wi/winpython點(diǎn)擊查看免費(fèi)下載本文基于倉(cāng)庫(kù)歷史文檔 WinPythonZero-64bit-3.7.0.2_History.md 展開(kāi)系統(tǒng)梳理 WinPython 64 位Zero極簡(jiǎn)變體在 3.7.0.2 版本中的全部變更4 個(gè)新增包、9 個(gè)升級(jí)包并逐一解析其版本差異、在發(fā)行版中的角色與升級(jí)價(jià)值。讀者讀完后將能準(zhǔn)確理解 WinPythonZero 的包集合構(gòu)成、此次升級(jí)帶來(lái)的實(shí)際能力變化以及 WinPython 多 flavor 構(gòu)建體系中 Zero 變體的定位。一、版本背景從 3.7.0.1Zero 到 3.7.0.2ZeroWinPythonZero-64bit 3.7.0.2 是基于 CPython 3.7.0 的 Windows 64 位便攜式 Python 發(fā)行版其變更日志標(biāo)題為 History of changes for WinPython-64bit 3.7.0.2Zero聲明以下變更自版本 3.7.0.1Zero 以來(lái)作出The following changes were made to WinPython-64bit distribution since version 3.7.0.1.。與同時(shí)期的完整版 WinPython-64bit 3.7.0.2 歷史新增 TensorFlow 1.9.0、geopandas 0.4.0、spyder 3.3.1 等大量科學(xué)計(jì)算包相比Zero 變體刻意保持極簡(jiǎn)從同版本完整包清單 WinPythonZero-64bit-3.7.0.2.md 可以看到它只捆綁 Python 解釋器加約 20 個(gè)基礎(chǔ)包沒(méi)有任何獨(dú)立 Tools如 Nodejs組件。這種零冗余定位適合需要純凈 Python 環(huán)境、按需自行安裝依賴的用戶。二、新增包4 個(gè)補(bǔ)齊編輯、壓縮、互操作與打包能力本版本為 Zero 集合新增了以下 4 個(gè)包包名版本官方描述定位idlex1.18IDLE Extensions for PythonIDLE 編輯器擴(kuò)展python_snappy0.5.3Python library for the snappy compression library from GoogleGoogle Snappy 壓縮庫(kù)綁定pythonnet2.4.0.dev0.Net and Mono integration for Python.NET / Mono 互操作wheel0.31.1A built-package format for Python構(gòu)建包格式標(biāo)準(zhǔn)工具2.1 idlex為內(nèi)置 IDLE 補(bǔ)充擴(kuò)展能力idlex 1.18 是 Python 標(biāo)準(zhǔn)庫(kù)自帶 IDLE 編輯器的擴(kuò)展集為開(kāi)發(fā)者在 Windows 上使用內(nèi)置 IDE 提供更豐富的編輯體驗(yàn)。它進(jìn)入 Zero 集合意味著即使是極簡(jiǎn)發(fā)行版也內(nèi)置了可擴(kuò)展的交互式編輯工具降低上手門檻。2.2 python_snappy引入 Google Snappy 高速壓縮python_snappy 0.5.3 提供對(duì) Google Snappy 壓縮庫(kù)的 Python 綁定。Snappy 以極高的壓縮/解壓速度著稱犧牲一定壓縮率換取吞吐在數(shù)據(jù)管道、日志處理等場(chǎng)景中是 Parquet、Arrow 生態(tài)的常見(jiàn)依賴。該包的加入為 Zero 集合補(bǔ)齊了高性能壓縮能力。2.3 pythonnet打通 .NET / Mono 互操作pythonnet 2.4.0.dev0 是 Python 與 .NET / Mono 運(yùn)行時(shí)互操作的官方方案允許 Python 代碼調(diào)用 .NET 程序集、在 .NET 環(huán)境中嵌入 Python。對(duì)于 Windows 平臺(tái)開(kāi)發(fā)者這是連接 Python 與既有 .NET 組件的重要橋梁——同期完整版還隨附了 clrmagicIPython 中調(diào)用 .NET 語(yǔ)言的 cell magic可見(jiàn) WinPython 團(tuán)隊(duì)對(duì) .NET 互操作場(chǎng)景的重視。2.4 wheel正式納入構(gòu)建包格式支持wheel 0.31.1 的加入與 pip 升級(jí)到 18.0 形成配套——wheel 是 Python 預(yù)編譯包的標(biāo)準(zhǔn)格式A built-package format for Python其隨發(fā)行版內(nèi)置保證用戶在無(wú)網(wǎng)絡(luò)或受限環(huán)境下也能正常安裝基于 wheel 的第三方包。注意本版本仍屬舊版構(gòu)建體系而在當(dāng)前倉(cāng)庫(kù)的現(xiàn)代構(gòu)建配置中wheel 已作為常規(guī)依賴出現(xiàn)在 requirements_slim.txt 里可視為該能力沿革的延續(xù)。三、升級(jí)包9 個(gè)基礎(chǔ)設(shè)施、任務(wù)調(diào)度與開(kāi)發(fā)工具全面刷新本版本共升級(jí) 9 個(gè)包可從三個(gè)維度理解升級(jí)意圖。3.1 包管理基礎(chǔ)設(shè)施pip 與 setuptools 的大版本跳躍包名舊版本新版本pip10.0.118.0setuptools39.2.040.2.0這是本次升級(jí)中最重要的一組變更pip 10.0.1 → 18.0跨 8 個(gè) minor 版本的大幅升級(jí)帶來(lái)更完善的依賴解析--require-hashes、約束文件支持等與性能改進(jìn)。升級(jí)前需要留意pip 18 與較舊 setuptools 的組合可能觸發(fā)警告本版本同步升級(jí) setuptools 正是為了消除這類兼容性問(wèn)題。setuptools 39.2.0 → 40.2.0進(jìn)入 40.x 系列在構(gòu)建后端與元數(shù)據(jù)處理上有顯著調(diào)整為后續(xù) pip 生態(tài)演進(jìn)鋪路。從構(gòu)建體系看pip 與 setuptools 屬于強(qiáng)制項(xiàng)倉(cāng)庫(kù)根目錄的 mandatory_requirements.txt 明確列出pip、setuptools與wppm三個(gè)必備組件說(shuō)明無(wú)論哪個(gè) flavor包管理基礎(chǔ)設(shè)施都必須是完整可用的因此它們被列入升級(jí)清單毫不意外。3.2 并行任務(wù)調(diào)度cloudpickle、dask、joblib 聯(lián)動(dòng)升級(jí)包名舊版本新版本用途cloudpickle0.5.30.5.5擴(kuò)展 pickling 支持可序列化閉包、lambda 等dask0.18.10.18.2最小化任務(wù)調(diào)度抽象并行/分布式計(jì)算joblib0.12.00.12.2輕量級(jí)管道用 Python 函數(shù)串起流水線任務(wù)三個(gè)包在功能上環(huán)環(huán)相扣dask 的分布式執(zhí)行依賴 cloudpickle 對(duì)局部函數(shù)與閉包的序列化能力joblib 則常與 dask 后端結(jié)合使用。同步小幅升級(jí)多為 bug 修復(fù)與穩(wěn)定性改進(jìn)體現(xiàn)了發(fā)行版維護(hù)者保持依賴鏈內(nèi)部版本協(xié)調(diào)的一貫策略——這在并行計(jì)算場(chǎng)景中尤其重要避免序列化器與調(diào)度器版本錯(cuò)位導(dǎo)致隱性故障。3.3 開(kāi)發(fā)與數(shù)據(jù)處理工具parso、pyodbc、qtpy包名舊版本新版本用途parso0.3.00.3.1Python 解析器jedi 補(bǔ)全功能的內(nèi)核依賴pyodbc4.0.234.0.24ODBC 數(shù)據(jù)庫(kù)訪問(wèn) DB API 模塊qtpy1.4.21.5.0Qt 綁定PyQt5/PyQt4/PySide抽象層parso 0.3.1作為 jediZero 集合內(nèi)置的自動(dòng)補(bǔ)全引擎的核心解析庫(kù)其升級(jí)直接改善補(bǔ)全質(zhì)量與解析穩(wěn)定性。pyodbc 4.0.24Windows 上連接 SQL Server 等 ODBC 數(shù)據(jù)源的標(biāo)配驅(qū)動(dòng)小版本升級(jí)帶來(lái)驅(qū)動(dòng)兼容性修復(fù)。qtpy 1.5.0提供統(tǒng)一的 Qt 綁定抽象層方便同一套代碼在不同 Qt 綁定間切換即便 Zero 變體不含 Qt 組件保留該抽象層也為用戶日后自裝 PyQt5/PySide 提供了兼容基礎(chǔ)。3.4 WinPython 自研工具鏈同步更新包名舊版本新版本用途winpython1.10.201806241.10.20180827WinPython 發(fā)行版工具含 WPPM 包管理器winpython 工具包含 WPPM——WinPython Package Manager從 1.10.20180624 升級(jí)至 1.10.20180827。WPPM 的作用在 README.rst 中有明確說(shuō)明它是瀏覽內(nèi)置包、從內(nèi)置 Wheelhouse 安裝包、注冊(cè) WinPython的補(bǔ)充工具同時(shí) pip 仍是增刪包的推薦方式。該工具與發(fā)行版版本號(hào)綁定1.10 系列對(duì)應(yīng) Python 3.7 時(shí)代隨發(fā)行版一并升級(jí)可確保包管理與新發(fā)行版結(jié)構(gòu)一致。四、從構(gòu)建體系理解 Zero 變體的定位4.1 flavor 機(jī)制同一 Python、多種配方當(dāng)前倉(cāng)庫(kù)的構(gòu)建配置 winpython_builds.toml 揭示了 WinPython 的多 flavor 構(gòu)建模型# A build is a (python, flavor) pair. Everything else is derived: # basedir {root_dir_for_builds}\bd{python} # requirements {basedir}\{flavor requirements} # source_dirs {basedir}\{flavor source_dirs}其中每個(gè) flavor 通過(guò)自己的 requirements 文件定義包集合。例如[flavors.slim]引用 requirements_slim.txt160 個(gè)條目精簡(jiǎn)后保留 112 個(gè)而dot變體則引用 dot_requirements.txt。歷史時(shí)期的 Zero 變體與此同源——它沒(méi)有獨(dú)立 requirements 文件而是由構(gòu)建腳本直接指定極小的包清單對(duì)應(yīng)本版本 WinPythonZero-64bit-3.7.0.2.md 中呈現(xiàn)的約 20 個(gè)包的規(guī)模。4.2 版本對(duì)比Zero 與完整版、Slim 的差異維度WinPythonZero-64bit 3.7.0.2WinPython-64bit 3.7.0.2完整版Tools 組件無(wú)Nodejs v8.11.4 等新增包4 個(gè)idlex / python_snappy / pythonnet / wheel26 個(gè)含 TensorFlow、geopandas、shapely 等升級(jí)包9 個(gè)60 個(gè)移除包無(wú)pymc3 / theano / torch / torchvision / vega3對(duì)比可見(jiàn)Zero 變體在 3.7.0.2 中僅做了補(bǔ)基礎(chǔ)式的增量更新而完整版同期進(jìn)行了一次大規(guī)??茖W(xué)計(jì)算棧刷新移除 Theano、Torch引入 TensorFlow 1.9 與地理信息棧。這種差異正體現(xiàn)了 WinPython 面向不同受眾的發(fā)行策略Zero 面向要一個(gè)干凈的 Python完整版面向開(kāi)箱即用的科學(xué)計(jì)算。五、升級(jí)驗(yàn)證與使用建議5.1 如何核對(duì)當(dāng)前包版本在已安裝的 WinPythonZero-64bit 3.7.0.2 環(huán)境中可用 pip 凍結(jié)清單核對(duì)版本python -m pip freeze重點(diǎn)核對(duì)本文涉及的升級(jí)項(xiàng)pip18.0、setuptools40.2.0、dask0.18.2、joblib0.12.2、cloudpickle0.5.5、qtpy1.5.0、pyodbc4.0.24、parso0.3.1。5.2 升級(jí)后的注意點(diǎn)pip 18.0 行為變化新版 pip 對(duì)依賴解析更嚴(yán)格若環(huán)境中存在過(guò)舊依賴安裝新包時(shí)可能報(bào)告ResolutionImpossible類錯(cuò)誤由于本版本已同步升級(jí) setuptools 至 40.2.0絕大多數(shù)場(chǎng)景不受影響。pythonnet 為開(kāi)發(fā)版2.4.0.dev0 屬于預(yù)發(fā)布版本dev0 后綴面向提前體驗(yàn) .NET 互操作的用戶生產(chǎn)使用建議關(guān)注后續(xù)穩(wěn)定版。繼續(xù)安裝缺失包Zero 集合不含科學(xué)計(jì)算??砂葱柰ㄟ^(guò)python -m pip install package安裝如需預(yù)編譯包優(yōu)先使用 WinPython 自帶的 Wheelhouse由 WPPM 提供入口。5.3 參考同系列歷史文檔若需回溯 Zero 變體的完整演進(jìn)脈絡(luò)可對(duì)照閱讀同目錄下的系列文檔3.7.0.1 變更歷史新增 qtpy 1.4.2升級(jí) pip 10.0.1 等、3.7.0.1 完整包清單 以及最初的 3.7.0.0 包清單可清晰看到 Zero 變體從 3.7.0.0 b4 起步、逐版本補(bǔ)齊基礎(chǔ)能力的軌跡。小結(jié)WinPythonZero-64bit 3.7.0.2 是一次穩(wěn)中求進(jìn)的維護(hù)性發(fā)布通過(guò)引入 idlex、python_snappy、pythonnet、wheel 四個(gè)新組件補(bǔ)齊編輯器、壓縮、.NET 互操作與打包能力并通過(guò) pip 18.0 / setuptools 40.2.0 的大版本升級(jí)刷新包管理基礎(chǔ)設(shè)施同時(shí)保持 dask / joblib / cloudpickle 等任務(wù)調(diào)度依賴的版本協(xié)調(diào)。對(duì)于追求純凈、可控 Python 環(huán)境的 Windows 開(kāi)發(fā)者這是一份值得升級(jí)的極簡(jiǎn)發(fā)行版其版本演進(jìn)史也為我們理解 WinPython 多 flavor 構(gòu)建體系提供了一個(gè)清晰的橫截面。贊分享開(kāi)發(fā)工具構(gòu)建工具CLI包管理器【免費(fèi)下載鏈接】winpythonA free Python-distribution for Windows platform, including prebuilt packages for Scientific Python.項(xiàng)目地址https://gitcode.com/gh_mirrors/wi/winpython點(diǎn)擊查看免費(fèi)下載相關(guān)推薦WinPythonZero 64bit 3.6.2.0 變更解析極簡(jiǎn) Python 發(fā)行版的包集演進(jìn)與構(gòu)建機(jī)制WinPythonZero 64bit 3.6.2.0 變更解析極簡(jiǎn) Python 發(fā)行版的包集演進(jìn)與構(gòu)建機(jī)制 WinPythonZero 是 WinPyth開(kāi)發(fā)工具構(gòu)建工具CLI包管理器WinPythonZero 3.5.4.2 32-bit 發(fā)布說(shuō)明Python 3.5 精簡(jiǎn)發(fā)行版包清單與升級(jí)變更解析WinPythonZero 3.5.4.2 32 bit 發(fā)布說(shuō)明Python 3.5 精簡(jiǎn)發(fā)行版包清單與升級(jí)變更解析 本指南以 changelogs/Win開(kāi)發(fā)工具構(gòu)建工具CLI包管理器WinPython 2.7.12.4Zero 發(fā)布解析Python 2.7 極簡(jiǎn)發(fā)行版的包清單與升級(jí)脈絡(luò)WinPython 2.7.12.4Zero 發(fā)布解析Python 2.7 極簡(jiǎn)發(fā)行版的包清單與升級(jí)脈絡(luò) 本篇以 changelogs/WinPythonZe開(kāi)發(fā)工具構(gòu)建工具CLI包管理器上一篇SillyTavern角色卡片系統(tǒng)完整解密一張PNG圖片如何裝下整個(gè)AI角色的靈魂下一篇SillyTavern 角色卡片完整入門一張 PNG 立繪里究竟藏了多少秘密創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考