编程语言
首页 > 编程语言> > python execjs

python execjs

作者:互联网

用python 中的execjs来运行js代码,发现报错,说

ReferenceError: window is not defined

可以用node里的jsdom,这个库可以生成对应环境

https://www.npmjs.com/package/jsdom

全局安装命令

npm i jsdom -g

之后在对应js代码里最前面加上以下代码就能正常运行

const jsdom = require(“jsdom”);
const { JSDOM } = jsdom;
const dom = new JSDOM(<!DOCTYPE html><p>Hello world</p>);
window = dom.window;
document = window.document;
XMLHttpRequest = window.XMLHttpRequest;

1.在python执行文件所在的运行目录下,使用npm安装jsdom
使用cwd参数,指定模块的所在目录,比如,我们在全局安装的jsdom,在cmd里通过npm root -g 可以查看全局模块安装路径: D:\Users\X\X\X\npm\node_modules
我们使用时,代码可以按下面的写法写
import execjs
with open(r’要运行的.js’,‘r’,encoding=‘utf-8’) as f:
js = f.read()
ct = execjs.compile(js,cwd=r’C:\Users\w001\AppData\Roaming\npm\node_modules’)
print(ct.call(‘Rohr_Opt.reload’,‘1’))

标签:npm,const,python,js,window,jsdom,execjs
来源: https://blog.csdn.net/weixin_42856601/article/details/100837056