文档章节

nodejs如何利用rpc调用python

go-skyblue
 go-skyblue
发布于 2015/12/24 11:18
字数 276
阅读 984
收藏 2
点赞 0
评论 0

先来个例子

看一段nodejs代码

var py = require('node-python-rpc')();


var os = py.import('os');
console.log("cwd: %s", os.getcwd())

是不是感觉写起来有点python的感觉。不过这段代码运行起来,还需要用python启动一个rpc服务

python -mnodepythonrpc

实现其实也不是很复杂。

node与python之间的通信采用jsonrpc协议

而其中用到了一些特殊的python函数

  • nodejs: py.import('os') 用到了python的 __import__('os')
  • nodejs: os.getcwd() 调用的是python的 getattr(os, 'getcwd')()

项目的地址是 https://github.com/codeskyblue/node-python-rpc

目前还比较新,不过我会把他用到我目前的项目中,在实践中去检验它出现的问题。

参考了 node-python 的用法。 因为这个库在我的电脑上一直安装不上,我才打算在创造个轮子。

© 著作权归作者所有

共有 人打赏支持
go-skyblue

go-skyblue

粉丝 75
博文 48
码字总数 31881
作品 5
杭州
程序员
Ubuntu Server 18.04 通过 nvm 安装 node

安装 python(node 很多地方依赖 python2,而 Ubuntu Server 18.04 默认没装 Python2) sudo apt install python nvm 官方仓库:https://github.com/creationix/nvm 安装 curl -o- https://r......

RQSLT ⋅ 05/29 ⋅ 0

Node.js在windows下的安装

Node.js 安装配置 本章节我们将向大家介绍在window和Linux上安装Node.js的方法。 本安装教程以Node.js v4.4.3 LTS(长期支持版本)版本为例。 Node.js安装包及源码下载地址为:https://nodejs....

梦梦阁 ⋅ 06/06 ⋅ 0

為什麼 Node.js 不適合大型和商業專案?

JavaScript 和 Node.js 一直都是這幾年的話題,無論是前端還是後端,到處都可見 JavaScript,就好像爬滿了你全身上下,他們不斷地對你說道「嘿!老兄!快來用我吧!」。 為什麼 Node.js 會這...

临江仙卜算子 ⋅ 05/25 ⋅ 0

新课上线|Python实现图片拼接与混合、XML-RPC文件共享程序等

关注「实验楼」,每天分享一个项目教程 最近又上线了哪些新课程?快来看看吧~ 会 员 课 一、《Python3 实现图片拼接与混合》 课程来源:selfim 课程简介:本课程主要是利用 Python 的第三方...

moy37rqw1jarn33bgzk ⋅ 05/12 ⋅ 0

Ubuntu 下搭建 AppRTC 服务

研究 WebRTC 协议,最好先自己基于官方 Demo 动手搭一套服务环境,其中包括 房间服务器 AppRTC 、信令服务器(AppRTC 目录下的 src/Collider)、coTurn NAT 穿透服务器 ,分别通过下载、编译...

Gobert ⋅ 2017/08/23 ⋅ 0

GraalVM 社区版 1.0 RC2,新一代高性能跨语言虚拟机

GraalVM 社区版 1.0 RC2 已发布。 GraalVM 是新一代的高性能跨语言虚拟机,用于运行 JavaScript、Python 3、Ruby、R、基于 JVM 的语言,如 Java、Scala、Kotlin 和基于 LLVM 的语言,如 C 和...

局长 ⋅ 06/07 ⋅ 18

ReactNative环境搭建问题小札

直接进入正题... ----------win7系统 + android studio工具 按照reactnative的官方介绍搭建开发环境 - React Native 中文网,使用Chocolatey,简单方便一些,但是会有一些小问题,不是因为...

害虫_84f3 ⋅ 05/23 ⋅ 0

Python怎么利用多核cpu

原文链接http://www.cnblogs.com/stubborn412/p/4033651.html def dead_loop(): def dead_loop(): {void DeadLoop() { while (true); } } from threading import Thread lib = cdll.LoadLibr......

dby_freedom ⋅ 05/06 ⋅ 0

用于备份豆瓣帐号的软件 - 豆坟

豆坟 用来备份豆瓣帐号的软件,将你的豆瓣帐号数据备份到本地并支持脱机浏览。目前支持备份关注、黑名单、书影音、广播。 开发环境要求: VSCode Python 3.6 virtualenv 15.2 Nodejs 8.9 npm...

匿名 ⋅ 06/07 ⋅ 0

王老板Python面试(10):17道python笔试面试真题

1、一行代码实现1--100之和 利用sum()函数求和 2、如何在一个函数内部修改全局变量 利用global 修改全局变量 3、列出5个python标准库 os:提供了不少与操作系统相关联的函数 sys: 通常用于命...

程序员八阿哥 ⋅ 05/22 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

从 Confluence 5.3 及其早期版本中恢复空间

如果你需要从 Confluence 5.3 及其早期版本中的导出文件恢复到晚于 Confluence 5.3 的 Confluence 中的话。你可以使用临时的 Confluence 空间安装,然后将这个 Confluence 安装实例升级到你现...

honeymose ⋅ 今天 ⋅ 0

Java8新增的DateTimeFormatter与SimpleDateFormat的区别

两者最大的区别是,Java8的DateTimeFormatter也是线程安全的,而SimpleDateFormat并不是线程安全。 在并发环境下使用SimpleDateFormat 为了能够在多线程环境下使用SimpleDateFormat,有这三种...

人觉非常君 ⋅ 今天 ⋅ 0

多线程如何控制执行顺序

线程的生命周期说明: 当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态,在线程的生命周期中,它要经过新建(New)、就绪(Runnable)、运行(Running)、...

MarinJ_Shao ⋅ 今天 ⋅ 0

用ZBLOG2.3博客写读书笔记网站能创造今日头条的辉煌吗?

最近两年,著名的自媒体网站今日头条可以说是火得一塌糊涂,虽然从目前来看也遇到了一点瓶颈,毕竟发展到了一定的规模,继续增长就更加难了,但如今的今日头条规模和流量已经非常大了。 我们...

原创小博客 ⋅ 今天 ⋅ 0

MyBatis四大核心概念

本文讲解 MyBatis 四大核心概念(SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、Mapper)。 MyBatis 作为互联网数据库映射工具界的“上古神器”,训有四大“神兽”,谓之:Sql...

waylau ⋅ 今天 ⋅ 0

以太坊java开发包web3j简介

web3j(org.web3j)是Java版本的以太坊JSON RPC接口协议封装实现,如果需要将你的Java应用或安卓应用接入以太坊,或者希望用java开发一个钱包应用,那么用web3j就对了。 web3j的功能相当完整...

汇智网教程 ⋅ 今天 ⋅ 0

2个线程交替打印100以内的数字

重点提示: 线程的本质上只是一个壳子,真正的逻辑其实在“竞态条件”中。 举个例子,比如本题中的打印,那么在竞态条件中,我只需要一个方法即可; 假如我的需求是2个线程,一个+1,一个-1,...

Germmy ⋅ 今天 ⋅ 0

Django第一期

安装Django 去https://www.djangoproject.com/download/ 下载最新版的Django,然后解压放到Anaconda\Lib\site-packages目录下,然后cmd进入此目录,输入安装命令: python setup.py install ...

大不了敲一辈子代码 ⋅ 今天 ⋅ 0

Springboot2 之 Spring Data Redis 实现消息队列——发布/订阅模式

一般来说,消息队列有两种场景,一种是发布者订阅者模式,一种是生产者消费者模式,这里利用redis消息“发布/订阅”来简单实现订阅者模式。 实现之前先过过 redis 发布订阅的一些基础概念和操...

Simonton ⋅ 今天 ⋅ 0

error:Could not find gradle

一.更新Android Studio后打开Project,报如下错误: Error: Could not find com.android.tools.build:gradle:2.2.1. Searched in the following locations: file:/D:/software/android/andro......

Yao--靠自己 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部