从Python运行JavaScript代码
项目描述
PyExecJS (EOL)
已结束生命
这个库不再维护。不会修复错误(即使它们很 trivial 或 essential)。
我们建议使用其他库或创建一个分支。
从Python运行JavaScript代码。
PyExecJS是Ruby中ExecJS的移植。PyExecJS 自动选择最佳的可用运行时来评估您的JavaScript程序。
一个简短的例子
>>> import execjs >>> execjs.eval("'red yellow blue'.split(' ')") ['red', 'yellow', 'blue'] >>> ctx = execjs.compile(""" ... function add(x, y) { ... return x + y; ... } ... """) >>> ctx.call("add", 1, 2) 3
支持的运行时
一等支持(提供并测试了运行时类)
二等支持(提供了运行时类但未测试)
Apple JavaScriptCore - 包含在Mac OS X中
Microsoft Windows Script Host (JScript)
安装
$ pip install PyExecJS
或
$ easy_install PyExecJS
详细信息
如果指定了EXECJS_RUNTIME环境变量,PyExecJS将默认选择JavaScript运行时
>>> execjs.get().name # this value is depends on your environment. >>> os.environ["EXECJS_RUNTIME"] = "Node" >>> execjs.get().name 'Node.js (V8)'
您可以通过execjs.get()选择JavaScript运行时
>>> default = execjs.get() # the automatically picked runtime >>> default.eval("1 + 2") 3 >>> import execjs.runtime_names >>> jscript = execjs.get(execjs.runtime_names.JScript) >>> jscript.eval("1 + 2") 3 >>> import execjs.runtime_names >>> node = execjs.get(execjs.runtime_names.Node) >>> node.eval("1 + 2") 3
PyExecJS的优点是您不需要关心JavaScript环境。特别是,它在Windows环境中工作,无需安装额外的库。
PyExecJS的一个缺点是性能。PyExecJS通过文本与JavaScript运行时通信,因此速度较慢。另一个缺点是它不完全支持特定于运行时的功能。
PyV8 可能是某些用例的更好选择。
许可
版权所有 (c) 2016 Omoto Kenji。版权所有 (c) 2011 Sam Stephenson 和 Josh Peek。(作为 ExecJS 的作者)
在 MIT 许可证下发布。详情请参阅 LICENSE。
变更日志
1.5.0
放宽了对 six 的版本要求。
1.4.1
修复了模块级函数的参数。
修复了通过管道执行时的错误。
修复了错误地抛出异常。
1.4.0
修复了所需的库。
修复了 --print-available-runtimes 的输出顺序。
通过管道/标准输入执行某些 JavaScript 运行时(无需临时文件)。
1.3.1
修复了在 Python 2.7 中 --print-available-runtimes 失败的问题。
1.3.0
添加了 cwd 参数。
1.2.0
支持 Python 3.5。
支持 Nashorn(Java 8 JavaScript 引擎)作为运行时。
停止支持 Python 2.6 和 3.2。
1.1.0
支持 Python 3.4。
支持 SlimerJS 作为运行时。
支持 PhantomJS 作为运行时。
修复了 Windows 8 上的 JScript 运行时。
1.0.5
支持 Python 3.3。
修复了文件句柄泄漏。
修复了与 passenger-nginx-4.0 的问题。
1.0.4
移除了 "import execjs"(它阻止 Python 2.6 执行 setup.py)。
1.0.3
JavaScript 源代码嵌入在 init.py 中。"which" 命令由纯 Python 实现。
1.0.2
支持 Python 2.6.x。
1.0.1
将遗忘的 shell=True 添加到 Popen。
1.0.0
首次发布。
项目详情
PyExecJS-1.5.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 34cc1d070976918183ff7bdc0ad71f8157a891c92708c00c5fbbff7a769f505c |
|
MD5 | f530b8e14373714448a94f458d24d1d6 |
|
BLAKE2b-256 | ba8eaedef81641c8dca6fd0fb7294de5bed9c45f3397d67fddf755c1042c2642 |