在python中调用js或者nodejs
2016-07-04 21:42
393 查看
在python中调用js或者nodejs要使用PyExecJs第三方包。
示例代码
这是没有用到nodejs的情况;如果用到nodejs,这种写法会报“Cannot find module 'xxx'”的错误。
如果要用nodejs,要在环境变量中指定node_modules的路径。
示例代码
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", '<doc id=\'1\'></doc>') print obj
相关文章推荐
- leetcode No24. Swap Nodes in Pairs
- 【一天一道LeetCode】#117. Populating Next Right Pointers in Each Node II
- 【一天一道LeetCode】#117. Populating Next Right Pointers in Each Node II
- 【leetcode】19. Remove Nth Node From End of List
- 为什么 nodejs 外部的 reactnative 无法启动,因为没有配置环境变量.
- 搭建一个简单的node.js服务器
- Node.js: managing child processes
- 117. Populating Next Right Pointers in Each Node II
- nodejs基础概念解析
- window下通过nvmw来安装多版本node
- 116. Populating Next Right Pointers in Each Node
- 分布式存储ceph系统性能不稳定因素
- DrawNode
- Nodejs中 npm常用命令详解
- Nodejs全局安装和本地安装的不同之处
- [算法]Java 实现 简单MyNode类型 无序链表 递归 添加 删除 遍历
- 【原】nodejs全局安装和本地安装的区别
- 24. Swap Nodes in Pairs
- bower安装库出现的问题解决办法
- Node.js Streams文件读写操作详解