把 Python 代码添加到系统服务中 提供外部调用 如何实现

2017-10-14 08:43:04 +08:00
 jugelizi

搜索了下还是不怎么清楚 比如一段计算器代码,传递参数得到计算结果 我安装为系统服务 这样其他语言也可以使用

2720 次点击
所在节点    Python
8 条回复
YuuuZeee
2017-10-14 08:59:20 +08:00
你把这个封装成一个 module 里面去,然后放到系统 default 的 python 的 package 里面调用就行了
azh7138m
2017-10-14 09:09:07 +08:00
简单点就是 RESTful,做成一个 HTTP 服务
zjqzxc
2017-10-14 09:32:32 +08:00
搜索关键词:进程间通信
常见的:管道,信号量,消息队列,共享内存,套接字等

或者如 2#所说,给他做成一个 http 服务
northisland
2017-10-14 10:05:33 +08:00
ZeroMQ

http://zeromq.org/

 Ø   Connect your code in any language, on any platform.
 Ø   Carries messages across inproc, IPC, TCP, TIPC, multicast.
 Ø   Smart patterns like pub-sub, push-pull, and router-dealer.
NoAnyLove
2017-10-14 10:06:20 +08:00
系统服务?你这是打算用啥系统啊? Windows 下倒是有 COM 接口,不过没有看到过用 Python 写 COM 服务的,不知道行不行。我觉得#3 楼的方案比较靠谱。此外,还可以使用类似 Pyro 这种通过网络调用的服务。
scriptB0y
2017-10-14 10:47:37 +08:00
听起来远程调用可以做到

http://python-parallel-programmning-cookbook.readthedocs.io/zh_CN/latest/chapter5/11_A_remote_procedure_call_with_RPyC.html

大部分语言都支持,不过我不了解能不能跨语言。
hcnhcn012
2017-10-14 14:59:42 +08:00
意思是 systemctl start yourservice.service 来启动一个 daemon ?可以参考 shadowsocks 啊,不行就写 socket 老老实实进程间通信好了
SakuraSa
2017-10-14 15:07:55 +08:00
感觉做成 RPC 服务可以实现。
可以用现有成熟的 REST/Grpc/Thrift,或者自己写协议(一般没什么必要)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/397507

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX