pythonでjsまたはnodejsを呼び出す

1306 ワード

pythonでjsまたはnodejsを呼び出すには、PyExecJsサードパーティ製パッケージを使用します.
pip install pyexecjs

サンプルコード
>>> import execjs
>>> execjs.eval("'red yellow blue'.split(' ')")
['red', 'yellow', 'blue']
>>> ctx = execjs.compile("""
...     function add(x, y) {
...         return x + y;
...     }
... """)
>>> ctx.call("add", 1, 2)
3

これはnodejsが使われていない場合です.nodejsを使用すると、この書き方は「Cannot find module'xxx」というエラーを報告します.
nodejsを使用する場合は、環境変数にnode_を指定します.modulesのパス.
os.environ["NODE_PATH"] = os.getcwd()+"/node_modules"

サンプルコード
import os
import execjs
import json

# os.environ["EXECJS_RUNTIME"] = "Node"
os.environ["NODE_PATH"] = os.getcwd()+"/node_modules"
print execjs.get().name

parser = execjs.compile("""
    var wtf_wikipedia = require("wtf_wikipedia");
    function parse(text) {
        return wtf_wikipedia.parse(text);
    }
""")

if __name__ == "__main__":
    obj = parser.call("parse", '')
    print obj

転載先:https://www.cnblogs.com/mumuli/p/5641791.html