Electron+Python软件系统开发记录(一):基础环境搭建
1.问题说明
最近开始做本科毕设,其中有一部分内容是搭建一个完整的软件系统。系统要求就是常见的客户端,服务器,数据库的整体架构。因为本科不是计算机系的,所以学习的相关技能少,以前写课程设计一般用QT或者MFC,还有Mac的OC语言。本着多学习的态度,这次选用了Electron框架,可以迫使自己学学html,css,js这些东西。后端因为需要大量数据处理和深度学习,因此采用python。这个文档会持续更新,记录自己的系统开发过程。
2.框架简介
Electron是用js,html,css开发客户端APP的框架。我的理解就是给网页套了个壳,打开桌面软件好像打开了一个chorme一样。
3.通信方式选择
经过调研,发现网上的Electron+python程序实现前后端通信的方式主要有三种:
- http
- zerorpc
- thrift
这里的通信是指桌面端前端和本地后台的通信,用http不太合适,也太笨重了。
跟着网上的demo搞了一天zerorpc这个方式,最后也没成功。大概看了一下,zerorpc其中的依赖zeromq好像已经停止更新维护了。并且其存在很多版本问题,报错说需要abi编号为75的node.js版本,但是我去官网看,最新的一些版本都是79(我用的node12.13.1),再往前是72,没有75的,所以我就放弃了zerorpc。
后来我发现了thrift,Thrift是一种接口描述语言和二进制通讯协议,它被用来定义和创建跨语言的服务。它被当作一个远程过程调用(RPC)框架来使用,是由Facebook为“大规模跨语言服务开发”而开发的。很遗憾没有对它进行深入了解,不过用这个比较简单地就把通信demo跑通了。
4.thrift使用
使用Thrift通信首先需要在两端都安装依赖库:
pip install thrift
npm install thrift
然后写一个自己的python端的server
import json
from thrift.transport import TSocket
from thrift.transport import TTransport
from thrift.protocol import TBinaryProtocol
from thrift.server import TServer
from gen_py.test import userService
class Test:
def test1(self, dic):
print("one"