Skip to main content

一个依赖node.js来执行js代码的python库

Project description

一个依赖node.js来执行js代码的库


环境

注意 需要安装好node.js, 并添加好环境变量!!!


安装

pip install pyevaljs3

快速开始

import pyevaljs3

js_code = "function f(args) {console.log(args); return 'ok';}; return f('args')"
result = pyevaljs3.eval_(js_code)
print(result) # 'ok'

js_code = "function f(arg1, arg2) {console.log(arg1, arg2); return arg1 + arg2;}"
ctx = pyevaljs3.compile_(js_code)
result = ctx.call('f', 'a', 'b')
print(result) # 'ab'

#另一钟传参方式
result = ctx.call('f', arg_list=['a', 'b'])
print(result) # 'ab'

API参考

pyevaljs3.JSEval

  • def compile(self, source: str = None, suffix: str = None):
       编译javascript源代码
       :param source: 源代码字符串或要读取的文件路径
       :param suffix: js脚本文件名后缀(指定以什么模式执行), 默认是".js", 可选的值还有".cjs", ".mjs"等
       :return: Context

  • def eval(self, code: str = None, ignore_output=False):
       执行javascript代码, 返回其结果


pyevaljs3.Context

  • def call(self, func, *args, arg_list: List = None):
       调用指定的函数, 返回其结果(若指定了arg_list, 优先使用它作为函数参数)
       :param func: 函数名
       :param args: 函数的参数列表
       :param arg_list: 函数的参数列表

pyevaljs3的模块级函数

  • def compile_(source: str = None, mode: str = None) -> Context:
       编译js源代码
       :param source: 源代码字符串或要读取的文件路径
       :param mode: 执行模式, 默认以.js的行为去执行
       :return: Context

  • def eval_(code: str = None, ignore_output=False):
       执行javascript代码, 返回其结果
       :param code: js代码
       :param ignore_output: 是否忽略执行过程中的输出, 若为True则仅返回其结果, 默认不忽略(False)


使用自定义版本的node

  • 通过设置坏境变量来使用自定义版本的node, 只需设置NODE_PATH、NODE坏境变量即可
import os
# 优先级最高
os.environ['NODE_PATH'] = '/path/to/node.exe'
# 或者
# 优先级其次
os.environ['NODE'] = '/path/to/node.exe'

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyevaljs3-0.1.6.tar.gz (7.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyevaljs3-0.1.6-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file pyevaljs3-0.1.6.tar.gz.

File metadata

  • Download URL: pyevaljs3-0.1.6.tar.gz
  • Upload date:
  • Size: 7.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/6.0.0 pkginfo/1.9.6 requests/2.32.3 requests-toolbelt/0.10.1 tqdm/4.65.0 CPython/3.9.13

File hashes

Hashes for pyevaljs3-0.1.6.tar.gz
Algorithm Hash digest
SHA256 f019991268e62665460b2fec6cf49d1e6982cfb2f52b1dc9d2e3d7e912a149df
MD5 417b83e533c3e763034e9da0828cc7d7
BLAKE2b-256 2c03f426097330ecebdb6865d146eb4683bdaab3290df41a103971eaa313ecef

See more details on using hashes here.

File details

Details for the file pyevaljs3-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: pyevaljs3-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 8.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/6.0.0 pkginfo/1.9.6 requests/2.32.3 requests-toolbelt/0.10.1 tqdm/4.65.0 CPython/3.9.13

File hashes

Hashes for pyevaljs3-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 62346fb0dcce5f569b9a5c90749fbd581b02d1b50220ffd534bf6af8b54e2b0b
MD5 14feccde32f8ce4f9cf7a1b45a8e4fdb
BLAKE2b-256 64f0580a4be74647c956f7b64e4fa2d10232a768782a64d38f4b00d96f52c5f7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page