瀏覽器可以運行 Python 代碼了?

PyScript[1] 是 Anaconda 團隊開發(fā)的一個 Javascipt 庫,可以在 HTML 標簽里嵌入 Python 代碼,無需服務端就可以運行 Python 代碼。
比如說,我們用 Python 在頁面上顯示日期,先編寫一個 hello_world.html 文件,內(nèi)容如下:

用瀏覽器打開,其運行效果就是這樣的:


PyScript 目前構建在 Pyodide上,Pyodide 是 CPython 到 WebAssembly/Emscripten 的端口。
PyScript 支持在瀏覽器中編寫和運行 Python 代碼,并將在未來為其他語言提供支持。
你可能想知道,什么是 WebAssembly?以下來自維基百科:
WebAssembly(簡稱 wasm)是一個實驗性的低級編程語言,應用于瀏覽器內(nèi)的客戶端。WebAssembly 是便攜式的抽象語法樹,被設計來提供比 JavaScript 更快的編譯及執(zhí)行。WebAssembly 讓開發(fā)者能運用自己熟悉的編程語言(最初以C/C++作為實現(xiàn)目標)編譯,再藉虛擬機引擎在瀏覽器內(nèi)執(zhí)行。
WebAssembly 的開發(fā)團隊分別來自 Mozilla、Google、Microsoft、Apple,代表著四大網(wǎng)絡瀏覽器 Firefox、Chrome、Microsoft Edge、Safari。2017 年 11 月,以上四個瀏覽器都開始實驗性的支持 WebAssembly。
WebAssembly 于 2019 年 12 月 5 日成為萬維網(wǎng)聯(lián)盟(W3C)的推薦,與 HTML,CSS 和 JavaScript 一起,成為 Web 的第四種語言。
PyScript 帶來的便捷
1、PyScript 使更多的前端開發(fā)人員能夠使用 Python。
2、更低的編程門檻。因為幾乎每個人都可以訪問網(wǎng)頁瀏覽器,無論是在計算機上還是在手機上。這意味著不需要安裝任何額外軟件就可以開始編程。
3、有了 PyScript,不再需要擔心部署。PyScript 提供了“超越云端的架構轉(zhuǎn)變”,一切都會網(wǎng)頁瀏覽器中發(fā)生。
如何使用 PyScript
PyScript 使用以下三個主要組件在 html 中編寫 Python:
py-env 定義了運行 Python 代碼所需的包。 py-script 是在網(wǎng)頁中編寫 Python 代碼的地方。 py-repl 創(chuàng)建一個 REPL(讀取-評估-打印循環(huán))組件,用于評估用戶輸入的代碼并顯示結果。
比如代碼 todo.html[2] 中的兩個標簽

執(zhí)行效果:

再來看一個 repl[3] 的例子:

執(zhí)行效果:

更多例子請訪問這里[4]。
如何運行這些 demo ?
git?clone?https://github.com/pyscript/pyscript.git
cd?pyscript
npm?install?
npm?run?dev
然后瀏覽器訪問 http://localhost:8080,就會看到這個界面:

PyScript 的未來
PyScript 將 Python 帶到瀏覽器中,我們覺得還是非常有價值的,對這項技術創(chuàng)新充滿期待,目前 GitHub 2.7K 的星,如果你也感興趣,不妨用它來做一個網(wǎng)站。
參考資料
PyScript:?https://github.com/pyscript/pyscript
[2]todo.html:?https://github.com/pyscript/pyscript/blob/main/pyscriptjs/examples/todo.html
[3]repl:?https://github.com/pyscript/pyscript/blob/main/pyscriptjs/examples/repl.html
[4]這里:?https://github.com/pyscript/pyscript/tree/main/pyscriptjs/examples
這是我開發(fā)的機器人公眾號小號,目前增加了天氣查詢,955公司名單,關注時間查詢;后面還會增加圖片功能和每日送書抽獎送書活動,以及調(diào)戲功能,歡迎來體驗,捧場。
一個機器人公眾號已經(jīng)上線,歡迎調(diào)戲
推薦閱讀:
入門:?最全的零基礎學Python的問題? |?零基礎學了8個月的Python??|?實戰(zhàn)項目?|學Python就是這條捷徑
干貨:爬取豆瓣短評,電影《后來的我們》?|?38年NBA最佳球員分析?|? ?從萬眾期待到口碑撲街!唐探3令人失望? |?笑看新倚天屠龍記?|?燈謎答題王?|用Python做個海量小姐姐素描圖?|碟中諜這么火,我用機器學習做個迷你推薦系統(tǒng)電影
趣味:彈球游戲? |?九宮格? |?漂亮的花?|?兩百行Python《天天酷跑》游戲!
AI:?會做詩的機器人?|?給圖片上色?|?預測收入?|?碟中諜這么火,我用機器學習做個迷你推薦系統(tǒng)電影
小工具:?Pdf轉(zhuǎn)Word,輕松搞定表格和水印!?|?一鍵把html網(wǎng)頁保存為pdf!|??再見PDF提取收費!?|?用90行代碼打造最強PDF轉(zhuǎn)換器,word、PPT、excel、markdown、html一鍵轉(zhuǎn)換?|?制作一款釘釘?shù)蛢r機票提示器!?|60行代碼做了一個語音壁紙切換器天天看小姐姐!|
年度爆款文案
6).30個Python奇淫技巧集?
點閱讀原文,看B站我的視頻!

