半年前,知名 Python 發(fā)行版 Anaconda 開發(fā)商推出了PyScript—— 一款支持在瀏覽器中創(chuàng)建 Python 應(yīng)用程序的框架。PyScript 基于Pyodide構(gòu)建,Pyodide 由編譯成 WebAssembly 的 CPython 3.8 解釋器組成,允許在網(wǎng)頁瀏覽器中運(yùn)行 Python。Pyodide 可以安裝來自 PyPi 的任何 Python 包。Pyodide 還包括一個(gè)外部函數(shù)接口,可以將 Python 包暴露給 JavaScript,并將瀏覽器 UI,包括 DOM,暴露給 Python。
Anaconda 表示,為了讓 PyScript 取得成功,他們必須對(duì)項(xiàng)目本身及其核心技術(shù)依賴進(jìn)行戰(zhàn)略性投資,例如 WebAssembly (Wasm) 和 Pyodide 開源項(xiàng)目(PyScript 的首選 runtime)。 基于上述目標(biāo),Anaconda 在過去的半年里一直在積極改進(jìn) PyScript 的技術(shù)基礎(chǔ)設(shè)施,并在近日宣布加入了字節(jié)碼聯(lián)盟 (Bytecode Alliance),成為正式投票成員,希望幫助改進(jìn) Wasm 和 WASI 的標(biāo)準(zhǔn)。
Bytecode Alliance(字節(jié)碼聯(lián)盟)由 Mozilla、Fastly、Intel 與 Red Hat 聯(lián)合成立,是一個(gè)推動(dòng) WebAssembly 標(biāo)準(zhǔn)化的組織,該聯(lián)盟旨在通過協(xié)作實(shí)施標(biāo)準(zhǔn)和提出新標(biāo)準(zhǔn),以完善 WebAssembly 在瀏覽器之外的生態(tài)。目前正在積極推動(dòng) WASI (WebAssembly System Interface),使 WebAssembly 能夠安全地訪問文件、網(wǎng)絡(luò)和內(nèi)存等系統(tǒng)資源。
在 Anaconda 看來,Wasm 對(duì)于 PyScript 起著至關(guān)重要的作用。類似的,WASI 在 Python 生態(tài)的 runtime 和模塊中也扮演著至關(guān)重要的角色。他們希望與聯(lián)盟合作共同推進(jìn)這些標(biāo)準(zhǔn)。數(shù)據(jù)科學(xué)需要在任何地方都能運(yùn)行 workload,比如本地 Python 環(huán)境、瀏覽器和云中 —— 這種可移植性是計(jì)算的未來。除了加入字節(jié)碼聯(lián)盟,Anaconda 也在大力支持 PyScript 依賴的核心開源項(xiàng)目 Pyodide,比如為其上游貢獻(xiàn)代碼,以及支持正在進(jìn)行的開發(fā)工作。他們認(rèn)為Pyodide 的成功就是 PyScript 的成功,雖然有許多項(xiàng)目都實(shí)現(xiàn)了將 Python 引入瀏覽器,但 Pyodide 在彌補(bǔ)跨語言代理、打包和模塊支持方面的開發(fā)差距方面做得非常出色。而且Pyodide 在可預(yù)見的未來將會(huì)是 PyScript 的默認(rèn) runtime。
Anaconda 希望把它作為一個(gè)重要的依賴關(guān)系來支持,并充分認(rèn)識(shí)到它為 PyScript 帶來的價(jià)值。雖然 Anaconda “押注” Pyodide,但同時(shí)也在積極嘗試新的 runtime。最近他們展示了基于 MicroPython 的 PyScript 技術(shù)預(yù)覽版。
Anaconda 表示,MicroPython 非常適合在缺少操作系統(tǒng)和資源有限的受限環(huán)境中運(yùn)行。當(dāng)他們?cè)谀J(rèn)配置中將 MicroPython 應(yīng)用到 Wasm 時(shí),出現(xiàn)了令人興奮的結(jié)果:這個(gè)新的 runtime 總大小僅為 303KB,可即時(shí)加載并在不到 100 毫秒的時(shí)間內(nèi)開始執(zhí)行 MicroPython 邏輯。
Anaconda 認(rèn)為 MicroPython 也對(duì) PyScript 發(fā)揮了重要作用,尤其是在許多加載性能存在問題的開發(fā)場景中。因?yàn)?PyScript 可通過配置來支持多種 runtime,所以開發(fā)者可根據(jù)場景選擇最適合的方案。
-
瀏覽器
+關(guān)注
關(guān)注
1文章
1028瀏覽量
35397 -
python
+關(guān)注
關(guān)注
56文章
4797瀏覽量
84787
原文標(biāo)題:“可在瀏覽器端運(yùn)行的Python”再發(fā)力
文章出處:【微信號(hào):OSC開源社區(qū),微信公眾號(hào):OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論