是否可以在 chrome 中运行本机 python 代码?

Posted

技术标签:

【中文标题】是否可以在 chrome 中运行本机 python 代码?【英文标题】:Is it possible to run native python code in chrome? 【发布时间】:2013-04-30 19:43:32 【问题描述】:

我想知道是否可以在 chrome 中运行本机 python 代码而不是 javascript。 我见过像pyjs 或brython 这样的项目,但他们所做的是将python 编译为javascript。虽然这些都是很棒的项目,但这种方法的问题始终是您无法轻松调试原始 python 代码。

我偶然发现了这个 thread,其中描述了如何为 chromes-sandbox 开发自定义代码。但这可能会导致在沙箱中实现 python 解释器,这将是一个矫枉过正。

感谢任何帮助! (我不想开始任何关于 python 与 javascript 的讨论,只是想知道这是否可行,如果可行,该怎么做)

亲切的问候, 马可

【问题讨论】:

skulpt.org ...但它也在后台将其更改为 js 不幸的是,skulpt 正在做与 brython 和 pyjs 完全相同的事情 - 将 python 代码解析为 javascript...而不是在浏览器中本地运行它 令人兴奋的消息!查看我的更新答案。 【参考方案1】:

Python 是一种编程语言,您不能运行编程语言的本机代码。但是,您可以在浏览器中运行用 python 编写的程序。

那么我可以在浏览器中运行python代码吗?

2013 年 6 月更新: Brython 项目现已推出,可让您在浏览器中运行 Python 3 代码。你可以在http://www.brython.info/查看。

您可以使用run LLVM in JavaScript using ECMAScripten。这意味着您可以将 c-python 从 C 编译为 JavaScript,然后在浏览器中运行 JS。 ECMAScripten wiki 的链接提供了有关如何执行此操作的更多详细信息。

(这是在浏览器中运行的python REPL 的live demo)

还存在在浏览器中工作的python 2 实现。

但我应该这样做吗?

可能不是,JavaScript 和 python 在很多方面都很相似,都是动态的、紧凑的和聪明的。如果你懂 python,你可以很快学会 JavaScript。

如果您喜欢 python 的语法,您可能需要考虑CoffeeScript,它具有与 Python 相似的语法(有点类似于 Ruby)并且可以透明地编译为 JavaScript。

在浏览器中运行 python 的解决方案也往往会慢得多,至少在更多浏览器支持 asm.js 之前(目前只有 firefox nightly)。

【讨论】:

感谢本杰明的回复!我知道出于某些原因您可能不应该这样做,但如果有一种简单的方法,我会接受。我使用多种语言进行开发,javascript 可能是最容易学习的语言之一,但我不喜欢其中的一些概念(例如:如何实现类 - 继承很困难),这就是为什么我只想看看我是否可以用python做一些事情。正如我所说,我不想开始任何讨论,但看看那里有什么以及如何利用它。 JavaScript 中的继承非常简单,我喜欢 python 如何处理基于类的继承,但 JavaScript 更简单恕我直言。 var some2dPoint = x:3,y:5; var now3d = Object.create(some2dPoint);now3d.z=10。大胆地检查一下 CoffeeScript,它以一种让你感觉更自在的方式来上课这是一个关于 CS 课程的教程:arcturo.github.io/library/coffeescript/03_classes.html。另请查看code.google.com/p/brython,尽管我无法让它与现有代码库一起正常工作。我真的认为你可以学会享受 JavaScript,不过只有我。 另外,值得一提的是,虽然你是最初的发帖人,也是我要回答的人,但即使你对 我为什么要这样做这样的东西不感兴趣是一个社区网站,我认为很多在浏览器中查找运行 Python 的人应该意识到这并不总是最好的主意。我认为 JS 非常称职(有些人会说和 python 一样多,甚至更多),我认为如果你试一试你会非常喜欢它,它做的事情与 python 不同 但它专为不同的事物而设计。浏览器是一个异步和动态的环境,JS 是为 that 构建的 目前还没有。仍在做更多的研究 实际上 Brython 的想法涵盖了与 coffescript 相同的用例,不同之处在于(1)它没有发明一种新语言,(2)截至 2014 年,它确实暴露了几乎所有 Python3 标准库 - 其中有很多细节,在 javascript 中需要一个获取数十个其他项目才能使用。【参考方案2】:

我相信你可以用 Javascript 创建一个编译器来运行简单的 python 代码。可能还有一些可用的程序可以执行此操作。虽然,无法通过网络浏览器直接运行 python。

【讨论】:

JavaScript中已经有好几个Python解释器了,包括PyPy.js和Skulpt。

以上是关于是否可以在 chrome 中运行本机 python 代码?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以从在 Wine 中运行的 Windows 应用程序调用本机 Linux API?

在模拟器/设备上/使用或不使用 Chrome 调试时反应本机行为不同

是否可以在电子应用程序之外运行 python 代码

是否可以覆盖本机 fetch api 以使用所需的 Promise 库而不是本机浏览器 Promise?

Chrome 网络驱动程序 - Python

使用 Selenium 扩展 (Python)