通过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上测试)

贡献

  1. 叉开!在
  2. 创建您的功能分支:git checkout -b my-new-feature
  3. 提交您的更改:git commit -am 'Add some feature'
  4. 推到分支:git push origin my-new-feature
  5. 提交拉取请求:D

许可证

the MIT license下发布的代码

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java出现编译错误,我不理解   java在gnu-trove库中是否有任何有序映射?   java Servlet应该有映射,但找不到Servlet   java时间和第二期显示1:10,而不是13:10   java Play Framework 1.2.7 Heroku更新崩溃   线程“main”java中的opencsv异常。lang.NoClassDefFoundError:org/apache/commons/lang3/ObjectUtils   selenium在java中隐藏警告消息   java使用ID引用将JSON实体反序列化为POJO   java无法在JRE 8中加载字体   一个线程中的异常/错误会使整个应用程序停止吗?   java访问重复子规则的元素标签;e、 g.用ANTLR解析(1,2,3)中的a   java如何从平移旋转中找到新坐标   使用HTML Java小程序托管jar文件存在安全问题   java如何按频率而不是字母顺序排列字符串数组   java清除bufferedReader和块以获得更多输入   java解密SAML2断言