7-4|execjs._exceptions.ProgramError: Error: Cannot find module 'jsdom'

简介: 7-4|execjs._exceptions.ProgramError: Error: Cannot find module 'jsdom'

使用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;

在全局安装jsdom后,在node里按上面的写法是没有问题的,但是我们要在python中使用的话,不能在全局安装

如果在全局安装,使用时会报如下错误,说找不到jsdom

execjs._exceptions.ProgramError: Error: Cannot find module 'jsdom'

解决办法有两种

1.就是在python执行文件所在的运行目录下,使用npm安装jsdom

使用cwd参数,指定模块的所在目录,比如,我们在全局安装的jsdom,在cmd里通过npm root -g 可以查看全局模块安装路径: C:\Users\w001\AppData\Roaming\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'))


相关文章
|
12月前
|
JavaScript
Syntax Error: Error: Cannot find module ‘node-sass‘
Syntax Error: Error: Cannot find module ‘node-sass‘
303 0
|
12月前
Failed to execute script ‘xxx‘ due to unhandled exception:No module named ‘ctypes‘
Failed to execute script ‘xxx‘ due to unhandled exception:No module named ‘ctypes‘
411 0
|
6月前
Could not find method debug()
Could not find method debug()
251 59
|
4月前
|
前端开发
Error in created hook: “TypeError: _test.default is not a function
Error in created hook: “TypeError: _test.default is not a function
|
5月前
|
关系型数据库 MySQL Linux
FATAL ERROR: Could not find my_print_defaults
FATAL ERROR: Could not find my_print_defaults
156 0
|
6月前
|
自然语言处理 数据库
Expected one result (or null) to be returned by selectOne(), but found: 2
Expected one result (or null) to be returned by selectOne(), but found: 2
87 0
|
11月前
Error: Cannot find module ‘express‘
Error: Cannot find module ‘express‘
|
JavaScript
Module not found: Error: Can‘t resolve ‘path‘
Module not found: Error: Can‘t resolve ‘path‘
954 0
Could not find com.serenegiant:common:4.1.1
Could not find com.serenegiant:common:4.1.1
251 0