我现在需要把之前写的脚本分解成 界面层 + 控制层 + 实现层
GUI使用的是Sciter
虽不完善,但已基本达成需求.
现在的思路是 以控制层为主进程,启动GUI进程和实现层进程 共3个进程
最初想用p=Process(target=f,args=(q,))
实现,但发现我不知道如何启动GUI脚本,因为target需要的是函数(或许是我没找到)...
后来发现了Popen
,可以打开独立的脚本,但不知道怎样传递Queue
,毕竟我不用控制台,捕获输入输出也只能用来调试...
后来又找到socket
,但栗子在win下报错...
由于本人才疏学浅, 英文的文档实在看不懂(不知道看哪)
所以请教各位,哪种方式适合我呢? 或者有别的方式?
谢谢
socket是可以实现的,你多调试调试。
思路我可以再给你些:
基于http协议,搭建一个小型服务器,可以用tornado模块,你可以搜一下使用案例,简易的服务器搭建起来非常简单。通信的时候只需要通过客户端fetch方法向某个服务器或访问不同的url或者传递不同的参数,达到信号与槽的效果。具体怎么部署,你自己考虑下。
而多进程的问题,我之前做过类似的,你可以找到启动GUI程序的地方,用一个函数把这段代码封装起来。同样的,你最终只要把三个进程的主方法封装好,然后在单独的一个py文件里import进来,然后就开三个进程分别start就行了。然后配合服务器之前互相访问,通信,整个架构就活了。
这是我当时解决通信问题的做法,仅供你参考。