标签: brython

浏览器中的Python:如何在Brython,PyPy.js,Skulpt和Transcrypt之间进行选择?

我很高兴看到现在可以在浏览器中编写Python代码.这些是主要候选人(请添加我可能忽略的任何一个):

但如何在它们之间做出选择?我能看到的唯一明显区别是Skulpt基于Python 2,而Brython基于Python 3.

请注意:这不是建议或意见的要求.我正在寻找能够为受过教育的选择提供信息的客观事实.

python browser brython skulpt transcrypt

69
推荐指数
5
解决办法
2万
查看次数

集成Python和JavaScript的最佳方式?

是否可以集成Python和JavaScript?例如,假设您希望能够在JavaScript中定义类并从Python中使用它们(反之亦然).如果是这样,最好的方法是什么?我不仅对这是否可行感兴趣,而且如果有人在"严肃"的项目或产品中做到了这一点.

我猜这可能是使用JythonRhino的例子,但我很好奇是否有人真的这样做过,以及是否有其他平台的解决方案(特别是CPython).

javascript python brython transcrypt rapydscript

63
推荐指数
6
解决办法
10万
查看次数

Brython完全是客户端吗?

我有一段用Python编写的代码.我想将该代码放在网页中.Brython似乎是将两个东西粘合在一起的最简单的方法,但是我没有可以在服务器端实际运行代码的服务器.

Brython是否需要服务器端代码,或者我可以廉价地使用它来托管一个页面(例如)Dropbox?

python brython

17
推荐指数
2
解决办法
5269
查看次数

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

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

除此之外,我偶然发现了这个线程,描述了如何为chromes-sandbox开发自定义代码.但这可能会导致在沙箱中实现python解释器,这将是一种过度杀伤力.

任何帮助表示赞赏!(我不想开始任何python与javascript讨论,但只是发现这是否可能,如果可行,如何做)

亲切的问候,
马可

javascript python google-chrome sandbox brython

11
推荐指数
1
解决办法
1万
查看次数

如何使用Brython将Python编译为Javascript(与nodejs一起运行)?

如何使用Brython将Python编译为Javascript?我想在我的计算机上执行此操作,因此我可以使用nodejs运行Javascript,例如.

$ python hello.py
Hello world
$ brython hello.py -o hello.js
$ node hello.js
Hello world
Run Code Online (Sandbox Code Playgroud)

Brython网站上的示例仅解释了如何在浏览器http://www.brython.info/index_en.html中执行此操作

javascript python node.js brython

6
推荐指数
2
解决办法
1740
查看次数

如何使用 Brython 导入库

我希望在 Brython 中导入我自己的库。文档的此页旨在展示如何通过将适当的目录添加到 python 路径,但我无法使其工作,因为我无法使 Brython import sys

以下是 Brython 文档第一页中最简单的示例代码:

<html>
<head>
<script src="../src/Brython3.2.8/brython.js"></script>
</head>
<body onload="brython()">
<script type="text/python">
  from browser import document, alert

  def echo(ev):
    alert(document["zone"].value)

  document['mybutton'].bind('click', echo)
</script>
<input id="zone"><button id="mybutton">click !</button>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

效果很好。

但如果我尝试导入 sys:

<html>
<head>
<script src="../src/Brython3.2.8/brython.js"></script>
</head>
<body onload="brython()">
<script type="text/python">
  import sys
  from browser import document, alert

  def echo(ev):
    alert(document["zone"].value)

  document['mybutton'].bind('click', echo)
</script>
<input id="zone"><button id="mybutton">click !</button>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

然后 html 将显示,但按钮不会执行任何操作。

Chrome 上的控制台显示以下错误:

brython.js:6929 XMLHttpRequest cannot load …
Run Code Online (Sandbox Code Playgroud)

python brython

6
推荐指数
1
解决办法
4717
查看次数

HTML 头中的两个脚本冲突(Brython 和 iFlyChat)

我正在加载 Brython 和 iFlyChat,但如果取消注释 iFlyChat 脚本,Brython 将无法工作。我尝试了各种异步组合,但似乎有一些更基本的东西。

JSFiddle在这里和下面的代码:

https://jsfiddle.net/tutmoses/c09dhbrq/

<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Title</title>

<!-- BRYTHON -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/brython/3.8.8/brython.js" integrity="sha256-rA89wPrTJJQFWJaZveKW8jpdmC3t5F9rRkPyBjz8G04=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/brython/3.8.8/brython_stdlib.js" integrity="sha256-Gnrw9tIjrsXcZSCh/wos5Jrpn0bNVNFJuNJI9d71TDs=" crossorigin="anonymous"></script>

<!-- IFLYCHAT 
<script>
console.log("init iflychat plugin");
var iflychat_app_id="1c0d1abc-4864-4608-acb7-6cdbfab07ce2";
var iflychat_external_cdn_host="cdn.iflychat.com",iflychat_bundle=document.createElement("SCRIPT");iflychat_bundle.src="//"+iflychat_external_cdn_host+"/js/iflychat-v2.min.js?app_id="+iflychat_app_id,iflychat_bundle.async="async",document.body.appendChild(iflychat_bundle);var iflychat_popup=document.createElement("DIV");iflychat_popup.className="iflychat-popup",document.body.appendChild(iflychat_popup);
</script> -->

</head>
<body onload="brython()">

  <div class="container">

    <h2 id="hello"></h2>
    <button id="alert-btn">Alert & Insert</button>

    <input type="text" id="text" placeholder="Enter something">
    <span id="output"></span>

</div>
<!-- Alert & DOM insert -->
<script type="text/python" id="script0">
    from browser import document, console, alert

    def show(e):
        console.log(e) …
Run Code Online (Sandbox Code Playgroud)

javascript brython

6
推荐指数
1
解决办法
142
查看次数

如何在Brython中使用ajax

我正在使用Flask编写Web应用程序,并希望在Brython中使用browser.ajax功能,但找不到可行的示例.如果有人演示如何在Brython中使用ajax,那将是非常好的.更具体地说,如何通过单击提交按钮将用户输入的数据传递到文本域中.任何帮助都非常感谢!


(我在发布上述问题几周后就写了这篇文章).我按照本教程关于如何在Flask中实现ajax(http://runnable.com/UiPhLHanceFYAAAP/how-to-perform-ajax-in-flask-for-python)并尝试用Brython替换jquery.ajax.不幸的是,我仍然无法让它发挥作用.这是我的代码:

烧瓶的部分:

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/_add_numbers')
def add_numbers():
    a = request.args.get('a', 0, type=int)
    b = request.args.get('b', 0, type=int)
    return jsonify(result=a + b)
Run Code Online (Sandbox Code Playgroud)

Brython/HTML:

 <body onload="brython()">
 <script type="text/python">
 from browser import document as doc
 from browser import ajax

def on_complete(req):
    if req.status==200 or req.status==0:
        doc["txt_area"].html = req.text
    else:
        doc["txt_area"].html = "error "+req.text

def get(url):        
    req = ajax.ajax()
    a = doc['A'].value        
    b = doc['B'].value
    req.bind('complete',on_complete)
    req.open('GET',url,True)
    req.set_header('content-type','application/x-www-form-urlencoded')
    req.send({"a": a, "b":b})      

doc['calculate'].bind('click',lambda ev:get('/_add_numbers'))

</script>

<div class="container">
  <div class="header"> …
Run Code Online (Sandbox Code Playgroud)

ajax brython

5
推荐指数
1
解决办法
1254
查看次数

如何在 brython 中创建 websocket JSObject?

我正在尝试使用Brython在浏览器中运行 Python 代码,并在该 Python 代码中使用 websockets。

我有工作的 JavaScript 代码,可以连接到位于http://www.websocket.org/echo.html的 Websocket echo 服务器。

根据文档,该函数JSObject可用于操作 Brython 中的 JavaScript 对象,但我无法使用 或 使其ws = JSObject(WebSocket("ws://echo.websocket.org/"))工作ws = JSObject(new WebSocket("ws://echo.websocket.org/"))

如何使用 Brython 在 Python 代码中制作一个连接到 echo 服务器的简单“Hello World”示例?


另请参阅如何使用 Brython 导入库以使用未内置于 Brython 的库(包括常用的 Python 标准库)。

html javascript python websocket brython

4
推荐指数
1
解决办法
675
查看次数

Brython:移动元素每[...]微秒

晚安.这是一个关于Brython的问题,欢迎任何帮助.

我正在寻找一种方法,每个时间间隔(可能是200毫秒)将元素(例如,div)移动到左侧(或右侧,顶部等)一些像素.谁能帮我?

一旦他到达左边缘就删除元素会很棒.(:

[更新]这是一个起点.我不会用错误的brython代码来判断它,遵循你的创造力;)

<html><head>
<style>
* { margin: 0; padding: 0; outline: 0; border: 0; }
.block {
  display: inline-block;
  margin: 1em;
  padding: 1em;
  background: steelblue;
  color: white;
  font: 14pt/1.2 georgia,cambria;
  border-radius: .2em;
}
</style></head><body>

<div class="block">
  Test
</div>

</body></html>
Run Code Online (Sandbox Code Playgroud)

html python brython

3
推荐指数
1
解决办法
364
查看次数

从 JavaScript 调用 Brython 函数

编辑:谷歌群组帖子

我正在和Brython一起玩。

我想弄清楚如何从 JavaScript 执行 Brython 代码。

http://www.brython.info/static_doc/en/jsobjects.html <--这看起来像相关的文档页面,但似乎缺少从 JavaScript 调用 Brython 函数的示例。

对于我的具体情况,我正在收听 MIDI 事件(使用https://github.com/cwilso/WebMIDIAPIShim

我希望 Brython 代码响应接收到的 MIDI 事件而执行。

目前我正在尝试:

function myMIDIMessagehandler( event ) 
{
    if( brythonListener != null )
        brythonListener( event );
Run Code Online (Sandbox Code Playgroud)

和 Brython 代码:

<script type="text/python3">

from browser import document as doc, window, html

def foo(event):
    print("BRYTHON!" + event);

window.brythonListener = foo

</script>
Run Code Online (Sandbox Code Playgroud)

但是当我在我的 MIDI 键盘上按下一个音符时,我得到:

在此处输入图片说明

我不知道如何处理这个错误,而且我完全不确定这种方法是否合理。

javascript python-3.x brython

3
推荐指数
1
解决办法
1090
查看次数

如何使用 brython 导入 numpy 或其他库

我想在 brython 中使用 numpy。但我不知道如何在 brython 中导入额外的模块。如果您有类似的经历或疑问,请告诉我解决方法

python brython

2
推荐指数
1
解决办法
3052
查看次数

如何使用 Brython 创建简单的 python 代码运行器

我正在创建简单的代码编辑器,它可以运行 python 代码并显示输出和错误消息。目前我可以运行 python 代码,但问题是输出显示在开发人员工具的控制台中。我想将输出和错误消息获取到 DOM 元素或作为字符串传递到 JS 脚本

<script type="text/python">
from browser import document, window 
import tb as traceback

def run(event): 
    
    try: 
        exec(document['code'].value) 
    except Exception:
        print(traceback.format_exc()) 

document['run'].bind('click',run)

</script>
Run Code Online (Sandbox Code Playgroud)

这是我的代码。'code' 是用于输入代码的文本框的 ID。'run' 是运行按钮的 id。我想将输出获取到另一个文本框或作为字符串获取到我的 js 脚本,而不是显示在开发人员工具的控制台中

html javascript python editor brython

1
推荐指数
1
解决办法
1207
查看次数