Python中执⾏JS代码,通常两个库:js2py和pyexecjs。
js2py是纯python实现的库,⽤于在python中运⾏js代码,本质上是将js代码翻译成python代码
pip install js2py
import js2py
a=js2py.eval_js('console.log("hello world")')
func_js="""
function add(a,b){
return a+b
}
"""
add=js2py.eval_js(func_js)
print(add(2,3))
# 'hello world'
# 5
将js文件翻译成python脚本,如下:
import js2py
# 一种,直接在终端翻译
tra=js2py.translate_js('console.log("hello world")')
print(tra)
# 打印结果:
# from js2py.pyjs import *
# # setting scope
# var = Scope( JS_BUILTINS )
# set_global_object(var)
# # Code follows:
# var.registers([])
# var.get('console').callprop('log', Js('hello world'))
# 另一种,建立js文件将其中的内容翻译成python脚本
js2py.translate_file('test.js','test.py')
# 建立一个名为test.js的文件,这里的test.js是文件的相对路径(与该python脚本在同一文件夹),test.py为生成python脚本的文件名
import js2py # 导入了一个模块
context = js2py.EvalJs({'python_sum': sum}) # 将python_sum定义为python函数sum
js_code = '''
python_sum([1,2,3])
'''
print('js_code:',context.eval(js_code))
# js_code: 6