【发布时间】:2012-10-21 22:45:09
【问题描述】:
我想从 JavaScript 代码调用 Python 函数,因为在 JavaScript 中没有替代方法可以做我想做的事。这可能吗?你能调整下面的 sn-p 工作吗?
JavaScript 代码:
var tag = document.getElementsByTagName("p")[0];
text = tag.innerHTML;
// Here I would like to call the Python interpreter with Python function
arrOfStrings = openSomehowPythonInterpreter("~/pythoncode.py", "processParagraph(text)");
~/pythoncode.py 包含使用高级库的函数,这些函数在 JavaScript 中不容易编写:
import nltk # is not in JavaScript
def processParagraph(text):
...
nltk calls
...
return lst # returns a list of strings (will be converted to JavaScript array)
【问题讨论】:
-
不,浏览器(幸运的是)不会执行任意 Python 代码。您需要在服务器中运行它。
-
Javascript 在客户端运行。我假设 python 在服务器上运行。您可以向服务器发送 ajax 请求。不会很快。
-
使用 ajax,将文本发送到服务器上的 python 脚本。设置脚本以易于解析(对于 js)表示法(如 JSON)返回数据,并将结果分配给成功处理程序中的 arrOfStrings。
-
你可以在浏览器中运行官方的Python解释器,使用clang和Emscripten编译它。这是以前做过的。
-
@FredFoo,如果浏览器没有运行 ECMAScript(由于相当可疑的历史原因而被称为 JavaScript),那么幸运的是。自 90 年代以来,浏览器一直在运行 Python 的安全子集(这就是任何人在浏览器中运行任何东西的意思,尽管你的稻草人),因此我们不必处理当前的网络混乱。
标签: javascript python function integration