通过microsoftchakra引擎在Python中运行JavaScript代码
PyEvalJS的Python项目详细描述
皮耶瓦尔
PyEvalJS是一个针对Microsoft Chakra引擎的python包装器,它充当了python和JavaScript对象之间的桥梁,使用这个模块,您可以轻松地在python中运行JavaScript代码,而不必安装nodejs。在
安装
pip install PyEvalJS
使用
执行脚本
^{pr2}$调用函数
>>>fromPyEvalJSimportRuntime>>>runtime=Runtime()>>>runtime.compile("""... function add(x, y) {... return x + y;... }... """)>>>runtime.call("add",1,2)3
或者在脚本中加入args
>>>fromPyEvalJSimportRuntime>>>runtime=Runtime()>>>runtime.eval("""... function add2(num) {... return num+2;... } add2(8);""")10
或通过传递参数
>>>fromPyEvalJSimportRuntime>>>runtime=Runtime()>>>runtime.set_variable("a",8)True>>>runtime.eval("""... function add2(num) {... return num+2;... } add2(a);""")10
传递参数
>>>fromPyEvalJSimportRuntime>>>runtime=Runtime()>>>runtime.set_variable("name",['Jim','Bob','Tour'])True>>>runtime.get_variable("name")['Jim','Bob','Tour']
使用JavaScript模块
>>>fromPyEvalJSimportRuntime>>>runtime=Runtime()>>>runtime.require("./js/crypto-js.js")#import CryptoJS>>>runtime.compile("""... function encryptByDESModeCBC(key,message) {... var keyHex = CryptoJS.enc.Utf8.parse(key);... var ivHex = CryptoJS.enc.Utf8.parse(key);... encrypted = CryptoJS.DES.encrypt(message, keyHex, {... iv:ivHex,... mode: CryptoJS.mode.CBC,... padding:CryptoJS.pad.Pkcs7... }... );... return encrypted.ciphertext.toString();... }""")>>>runtime.call("encryptByDESModeCBC",'1234','this is a test')'94b7b0cc2b71165ea067868f595fc03a'
为列表中的每个项调用相同的函数
>>>fromPyEvalJSimportRuntime>>>runtime=Runtime()>>>runtime.compile("""... function add2(num) {... return num+2;... }""")>>>runtime.call_for_each("add2",[1,2,4,6,5])[3,4,6,8,7]
支持
- Python2>;=2.7
- Python3>;=3.4
平台
- macOS x64
- Linux x64
- Windows x86/x64(在Windows 10 x64、Python 3.7上测试)
贡献
- 叉开!在
- 创建您的功能分支:
git checkout -b my-new-feature
- 提交您的更改:
git commit -am 'Add some feature'
- 推到分支:
git push origin my-new-feature
- 提交拉取请求:D
许可证
在the MIT license下发布的代码
- 项目
标签: