You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在js2py中导入外部JavaScript文件的函数?

用js2py调用外部JS文件中的函数

你的场景是:Python代码里用js2py执行自定义JS逻辑,但需要调用另一个JS文件里导出的numar函数。下面是两种可行的实现方式:

方式一:在Python中挂载全局函数

先加载外部JS模块,把导出的函数挂载到JS执行环境的全局作用域,这样自定义JS代码就能直接调用:

假设外部JS文件名为utils.js,内容如下:

export function numar(){
    return 1; //return 1 if the checkbox is
}

修改后的Python代码:

import js2py

# 加载外部JS文件,获取导出的模块对象
utils_module = js2py.require('./utils.js')  # 替换为你的JS文件实际路径

# 初始化JS执行上下文
js_context = js2py.EvalJs()
# 将numar函数挂载到全局作用域
js_context.numar = utils_module.numar

# 定义需要执行的JS代码
js_code = '''
function myfunction(){
    var b = numar();
    return b;
}
'''

# 执行JS代码
js_context.execute(js_code)

# 调用函数并输出结果
print(js_context.myfunction())

方式二:在JS代码中直接导入

直接在要执行的JS代码里用require导入外部模块,和Node.js的写法类似:

import js2py

# 定义包含导入逻辑的JS代码
js_code = '''
// 从外部JS文件导入numar函数
const { numar } = require('./utils.js');

function myfunction(){
    var b = numar();
    return b;
}
'''

# 执行JS代码并调用函数
js_context = js2py.EvalJs()
js_context.execute(js_code)
print(js_context.myfunction())

注意事项

  • 确保require的路径正确:如果JS文件和Python脚本不在同一目录,要使用相对路径(比如../js/utils.js)或绝对路径。
  • js2py的require支持ES6的export语法,无需额外转换JS代码。

内容的提问来源于stack exchange,提问作者Al3x4ndru11

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 01:06:18