浏览器可以运行 Python 代码了?

PyScript:允许你在浏览器中直接运行Python代码,无需任何后端服务器支持 PyScript是一个基于浏览器的开源Python平台,它使用Pyodide(CPython的一个版本)、MicroPython、WASM和现代Web技术,使在浏览器中创建丰富的Python应用程序成为可能。PyScript支持许多常用的Python库,例如NumPy、Pandas、Matplotlib等,这使得开发者可以使用熟悉的工具和库来构建复杂的应用程序。你无需配置复杂的服务器端环境,只需在HTML文件中嵌入PyScript的标签,就可以直接编写和运行Python代码,并直接在网页上查看结果。 阅读详情

作为 Python 程序员,很羡慕那些 Javascript 开发者,动不动就能写出令人惊艳的网页。不过今年,我们也能用 Python 写前端了:Anaconda 团队开发出了 PyScript,你可以在 HTML 里面编写和运行 Python 代码,调用 Javascript 库,换句话说,你可以用 Python 来进行整个前后端开发。

什么是 PyScript

0d82ac23cefcf1ada5ffe161fd3fc923.png

PyScript[1] 是 Anaconda 团队开发的一个 Javascipt 库,可以在 HTML 标签里嵌入 Python 代码,无需服务端就可以运行 Python 代码。

比如说,我们用 Python 在页面上显示日期,先编写一个 hello_world.html 文件,内容如下:

30ded57cc1db47faa68bad84321e71a8.png

用浏览器打开,其运行效果就是这样的:

d4f069fb8938270669da0183a1898844.png

这意味着,我们可以在 HTML 中编写和运行 Python 代码, 在 PyScript 中调用 Javascript 库,并在 Python 中完成所有 Web 开发。

PyScript 的工作原理

467dd64a9ebd9a040165efe46dc6462d.png

PyScript 目前构建在 Pyodide上,Pyodide 是 CPython 到 WebAssembly/Emscripten 的端口。

PyScript 支持在浏览器中编写和运行 Python 代码,并将在未来为其他语言提供支持。

你可能想知道,什么是 WebAssembly?以下来自维基百科:

WebAssembly(简称 wasm)是一个实验性的低级编程语言,应用于浏览器内的客户端。WebAssembly 是便携式的抽象语法树,被设计来提供比 JavaScript 更快的编译及执行。WebAssembly 让开发者能运用自己熟悉的编程语言(最初以C/C++作为实现目标)编译,再藉虚拟机引擎在浏览器内执行。

WebAssembly 的开发团队分别来自 Mozilla、Google、Microsoft、Apple,代表着四大网络浏览器 Firefox、Chrome、Microsoft Edge、Safari。2017 年 11 月,以上四个浏览器都开始实验性的支持 WebAssembly。

WebAssembly 于 2019 年 12 月 5 日成为万维网联盟(W3C)的推荐,与 HTML,CSS 和 JavaScript 一起,成为 Web 的第四种语言。

PyScript 带来的便捷

1、PyScript 使更多的前端开发人员能够使用 Python。

2、更低的编程门槛。因为几乎每个人都可以访问网页浏览器,无论是在计算机上还是在手机上。这意味着不需要安装任何额外软件就可以开始编程。

3、有了 PyScript,不再需要担心部署。PyScript 提供了“超越云端的架构转变”,一切都会网页浏览器中发生。

如何使用 PyScript

PyScript 使用以下三个主要组件在 html 中编写 Python:

  • py-env 定义了运行 Python 代码所需的包。

  • py-script 是在网页中编写 Python 代码的地方。

  • py-repl 创建一个 REPL(读取-评估-打印循环)组件,用于评估用户输入的代码并显示结果。

比如代码 todo.html[2] 中的两个标签:

094f204d8239717355c3977f663436ee.png


执行效果:

f756be3cb94b0faae8eb3beb94c6f261.png

再来看一个 repl[3] 的例子:

290b560dee1389a4d1e7aefbd6ca6d6c.png

执行效果:

86d1e51d2f44ec8201082ac740449fb7.png

更多例子请访问这里[4]

如何运行这些 demo ?

git clone https://github.com/pyscript/pyscript.git
cd pyscript
npm install 
npm run dev

然后浏览器访问 http://localhost:8080,就会看到这个界面:

7018b4449670c99438d355c6521fc18d.png

PyScript 的未来

PyScript 将 Python 带到浏览器中,我们觉得还是非常有价值的,对这项技术创新充满期待,目前 GitHub 2.7K 的星,如果你也感兴趣,不妨用它来做一个网站。

参考资料

[1]

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

这是我开发的机器人公众号小号,目前增加了天气查询,955公司名单,关注时间查询;后面还会增加图片功能和每日送书抽奖送书活动,以及调戏功能,欢迎来体验,捧场。

一个机器人公众号已经上线,欢迎调戏

推荐阅读:
入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径
干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影
趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!
AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影
小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!|  再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|

年度爆款文案

点阅读原文,看B站我的视频!

浏览器中的Python:Brython Python代码转换为JavaScript,使我们能够在浏览器中编写和运行Python代码。可以实现python和js代码相互调用。基于Python 3 实现,支持HTML5环境(提供了DOM对象和事件接口)。支持turtle绘图库,可以进行图像绘制。Brython会把绘图程序转换成svg格式的动画。Brython仅支持本机Python模块,不支持C内置的Python模块,除非已在JavaScript中重新实现。由于Brython在Web浏览器的上下文中运行,因此存在一些限制。 阅读详情

相关推荐

使用Python和pymupdf创建简单的PDF阅读器

在日常工作和学习中,我们经常需要查看和阅读PDF文件。本文将介绍如何使用Python编程语言和wxPython库创建一个简单的PDF阅读器,让我们能够打开文件夹中的PDF文件,并在列表框中显示文件名,同时在右侧的区域中显示所选PDF文件的内容。使用Python和wxPython,我们可以轻松地创建一个简单的PDF阅读器。通过选择文件夹并显示PDF文件列表,我们可以在右侧的区域中查看选定PDF文件的内容。使用Python和wxPython编写一个简单的PDF阅读器,并展示了PDF文件的内容。

Winfredzhang的博客 1267

浏览器可以运行 Python 代码了,Python 也许会变成前后端通吃的语言

你好,我是征哥,作为 Python 程序员,我很羡慕那些 Javascript 开发者,动不动就能写出令人惊艳的网页。不过今年,我们也能用 Python 写前端了:Anaconda 团队开发出了 PyScript,你可以在 HTML 里面编写和运行 Python 代码调用 Javascript 库,换句话说,你可以用 Python 来进行整个前后端开发。什么是 PySc...

somenzz的博客 1121

别再被systemd-resolved坑了!银河麒麟V10下用Bind9搭建内网DNS的完整避坑指南

本文详细介绍了在银河麒麟V10和Ubuntu系统下部署Bind9 DNS服务器时,如何解决与systemd-resolved的端口冲突问题。提供了五种专业级解决方案,包括彻底禁用systemd-resolved、智能端口转发等,并特别针对银河麒麟V10的安全加固需求给出了配置建议和诊断工具,帮助用户高效搭建内网DNS服务。

weixin_30342209的博客 634

在网页中执行python

2、在这testpyscript.html和data.py文件目录下执行终端,也就命令行(windows)在网页中执行python,脚本,也就是在html中写python,或者引入python脚本代码。也就引入pyscript库,调用python脚本。

一休 5635

浏览器运行python代码

解决方案主要有两类: 将Python语言编译成JavaScript然后在浏览器网页中运行,比如Brython,Skulpt,Transcrypt 在浏览器中内置Python解释器,如Pyodide,PyPy.js 第一种是为了用Python来代替JavaScript,即用Python操作网页DOM(Document Object Model)元素,让不熟悉JS的编程人员也能用Python来做一个简单的动态交互网页; 第二种,比如Pyodide,它的野心很大,即将Python的科学计算生态搬到浏览器中,比

merlon学习笔记 8331

直接在浏览器运行Python代码

到这个链接将代码下载到本地,然后打开cmd,使用python运行此文件,然后不要关闭窗口: https://raw.githubusercontent.com/michaelliao/learn-python3/master/teach/learning.pycmd操作E:\python\code>python learning.py Ready for Python code on port 3

liuzp111的专栏 4万+

列举一个python的交互环境_在浏览器运行可交互Python代码

最近研究了一些在线运行代码应用,感觉颇为有趣,在此稍作总结,并尝试实现一种在浏览器运行可交互Python代码的方案。所谓“可交互Python代码”,指的是python中input等接受标准输入数据的API下面列举了一些在线编辑器,可以体验一番1. 将Python转换成JavaScript代码由于Python也是解释型代码,因此可以通过解析AST的方式,通过JavaScript运行Python代码,...

weixin_39929595的博客 458

PyScript 终极指南:在浏览器中轻松运行Python代码

想要在浏览器中直接运行Python代码吗?PyScript让这一切成为可能!这是一个革命性的开源平台,将Python的强大功能带到了任何支持浏览器的设备上。无论你是数据科学家、教育工作者还是Web开发者,PyScript都能为你开启全新的可能性。🚀 PyScript 是一个创新的开源平台,它让Python能够在浏览器中直接运行。通过使用 [WebAssembly](https://webass

gitblog_01174的博客 494

JavaScript + Python:用 Pyodide 在浏览器运行 Python 代码

传统上,浏览器只能直接执行 JavaScript 代码,其他语言的程序若想在浏览器运行,必须通过某种方式转换为 JavaScript。在这个例子中,JavaScript 先获取用户上传的 CSV 文件内容,然后通过pyodide.globals.set()方法将内容存入 Python 的全局变量csv_data中,最后在 Python 代码中使用 Pandas 解析这个变量,得到的数据框(DataFrame)可以通过to_js()方法转换为 JavaScript 对象,方便在前端进行处理和展示。

2509_93051135的博客 508

Pyodide:在浏览器中直接运行Python代码的3种实用方法

想要在浏览器中直接运行Python代码而无需服务器支持吗?Pyodide正是你需要的解决方案!这是一个基于WebAssembly技术的Python发行版,让你能够在浏览器和Node.js环境中无缝执行Python程序,包括科学计算库如NumPy、pandas等。无论你是想创建交互式教学工具、构建数据可视化应用,还是开发无需后端的Web应用,Pyodide都能为你提供强大的Python运行环境。

gitblog_00318的博客 254

有望在浏览器中使用 python.js 运行 Python 代码

文| 局长 出品 | OSC开源社区 Mypy 项目核心团队的成员 ethanhs发表推特称,得益于 Python 团队核心开发者@ChristianHeimes最近提交的 commit,他找到了构建用于 Web 的 CPython 主分支的正确方法。 上面就是在浏览器运行 Python 的截图。 ethanhs 表示,虽然已经顺利在浏览器运行了 CPython,不过还有很多工作要做。此外他构建的脚本也已开源:https://github.com/ethanhs/python-wa...

pythondby的博客 127

PyScript完全指南:如何在浏览器运行Python代码

PyScript是一个革命性的开源平台,它让Python代码能够在浏览器中直接运行。通过WebAssembly技术,PyScript将Python的强大功能带到了Web环境中,让开发者能够创建丰富的交互式Python应用程序。无论你是数据科学家、教育工作者还是Web开发者,PyScript都能为你打开全新的可能性。 ## 🚀 PyScript是什么? PyScript是一个基于WebAsse

gitblog_00877的博客 416

突破边界:在浏览器中直接运行Python代码的完整指南

想要在Web浏览器中直接运行Python代码吗?现在通过Web Python技术,这一切都成为了可能。Pyodide作为一个革命性的浏览器Python环境,彻底改变了我们使用Python的方式。 ## 🚀 核心功能亮点 ### 完整的Python生态系统 Pyodide将完整的CPython解释器移植到WebAssembly环境中,这意味着你可以在浏览器运行几乎所有的Python标准库功能

gitblog_01184的博客 863

浏览器运行python代码_浏览器运行python脚本吗

Python的脚本不是用浏览器运行的。要运行Python程序,需要用到Python解释器。python解释器是一种让其他程序运行起来的程序。Python也有一个名为解释器的软件包,当你编写了一段Python程序,Python解释器将读取程序,并按照其中的命令执行,得出结果。实际上,解释器是代码与机器的计算机硬件之间的软件逻辑层。当Python包安装在机器上后,它包含了一些最小化的组件:一个解释器和...

weixin_39572168的博客 678

如何在浏览器中直接运行Python代码?Pyodide完整解析

Pyodide是一个基于WebAssembly的Python发行版,专为浏览器和Node.js环境设计。它允许开发者在浏览器中直接运行Python代码,无需后端服务器支持,为Web应用带来了强大的Python计算能力。无论是数据处理、科学计算还是机器学习,Pyodide都能让你在浏览器环境中轻松实现Python的各种功能。 [![Pyodide Logo](https://raw.gitcode

gitblog_01185的博客 434

Pyodide完整指南:在浏览器中直接运行Python代码的终极方案

Pyodide是一款革命性的Python发行版,它基于WebAssembly技术,让你能够在浏览器和Node.js环境中无缝运行Python代码。这个开源项目将完整的CPython解释器移植到WebAssembly平台,并提供了强大的JavaScriptPython互操作能力。 ## 🚀 Pyodide的核心特性与优势 **无需安装的Python环境** - 直接在浏览器中体验完整的Pyt

gitblog_00948的博客 1001

python无法运行代码_2个工具教你在浏览器运行开发notebooks中的python代码

全文共1142字,预计学习时长5分钟近几年,机器学习迎来了前所未有的大爆发,几乎随处可见。今天就来介绍一下如何在线构建共享机器学习模型。Jupyternotebooks是用来建立机器学习模型最常见的环境之一,它是本地开发机器学习的好工具,但也有缺点,它很难在生成代码上共享与协作。你不得不进行一系列合理设置,非python用户尤甚,包括需要设置python环境,安装Jupyter及其依赖项以及可能需...

weixin_39520149的博客 104

Pyodide终极指南:如何在浏览器中无缝运行Python代码

Pyodide是一个基于WebAssembly的革命性Python发行版,让你能够在浏览器和Node.js环境中直接运行Python代码。这个开源项目彻底改变了Python在前端开发中的应用方式,为数据科学、机器学习和科学计算带来了全新的可能性。🚀 ## 什么是Pyodide?为什么它如此重要? Pyodide将完整的CPython运行时环境编译为WebAssembly,这意味着你可以在任何

gitblog_01080的博客 645

Qt Android MySql 数据库驱动编译(详细图解步骤)

第一步.先介绍下环境搭建: Qt 版本 5.12.11 下载链接 https://download.qt.io/archive/qt/5.12/5.12.11/qt-opensource-linux-x64-5.12.11.run Ubuntu 18.04.6 LTS 下载链接 JDK版本 1.8.0_191 下载链接https://www.oracle.com/java/technologies/downloads/ Android Studio版本 ...

h a 6 6 6 c k 为 你解决复杂难题! 3339

Echarts动态排名柱状图(自适应电脑和手机端)源代码

Echarts动态排名柱状图(自适应电脑和手机端)源代码,参见:https://blog.csdn.net/weixin_41290949/article/details/120672844

上一篇: 30个案例,305页!超有趣的Python学习资料!
下一篇: 一个迅速崛起的国产开源OCR项目!
菜鸟学Python
博客等级 码龄9年 7561粉丝 571原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值