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