使用 PyExecJS2 库时 js 引用包的模块路径问题
目录结构
/project-root
│
├── main.py
└── js
├── sha1.js
└── index.js
main.py
import os
import execjs
# 将js文件夹路径设置到 NODE_PATH 环境变量即不会引发require导入时找不到包的问题
current_dir_path = os.path.dirname(os.path.abspath(__file__))
js_module_dir = f'{current_dir_path}/js'
os.environ['NODE_PATH'] = js_module_dir
with open('./js/index.js') as f:
js_str = f.read()
js_ctx = execjs.compile(js_str)
js_ctx.call(add, 1, 2)
index.js
const CryptoJS = require('./sha1.js')
function add (a, b) {
return a + b
}