作者HerryL (metrics is everything@@)
看板Python
标题[问题] 请问二个虚拟环境间的变数沟通
时间Sat Aug 3 00:20:23 2024
请问各位大大,
我有一个既有的web_service_a.py,是在venv_a下执行,
目前处理3种function呼叫服务,就当是func1, func2 ,func3好了,
现在,在同一台机器里,
需要再加一个func4,但这个func4当初是在venv_b下开发。
因为二个虚拟环境很多版本差异,已经放弃整合二个虚拟环境,
请问,除了把func4做成独立服务web_service_b.py呼叫(或许配合docker),
把总入口放在web_service_a.py,遇到呼叫func4再转call web_service_b外,
有没有其他方法可以解?
chatgpt曾建议我使用multiprocessing's Pipe或Queue,
但是因为需要使用不同的venv,这种解法都会遇到配合subprocessing.run()
去呼叫虚拟环境python+py档一起使用,
但是subprocess.run()似乎无法传递pipe或queue
(至少它给的范例是不能run1的)
我目前还在看multiprocessing的文件,
但是看起来没什麽头绪,
所以想先请教大家,
Pipe或Queue是有机会解的吗,还是真只能再做出web_serice_b?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.58.96.80 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1722615629.A.D7E.html
1F:推 wuyiulin: MQTT? 08/03 09:23
对耶!好像可试试messageQ,谢谢:)
※ 编辑: HerryL (61.58.96.80 台湾), 08/03/2024 15:22:55
2F:推 DaOppaiLoli: pipe是指subprocess.PIPE吗 08/04 03:42
3F:推 tzouandy2818: 写成http api怎麽样 08/04 09:57
4F:推 ssdoz2sk: 只有两个 process ,做成 restful API 供呼叫。或是用 ze 08/05 20:36
5F:→ ssdoz2sk: romq 就不用有中间的 broker 08/05 20:36
6F:→ leolarrel: ZeroMQ 08/06 13:36
7F:推 LP9527: 最简单的做法是 b 做成 executable 给 a call; 再来就是 08/06 22:44
8F:→ LP9527: 用 unix socket 串; 再来再考虑别的 rpc 或直接 rest api 08/06 22:44
9F:→ LP9527: 用不用 mq 要先考虑有没有 realtime 需求 08/06 22:44
10F:推 hanksky: 用socket 来做应该最简单,不然开api学一下flask快速开 08/09 12:36
11F:→ hanksky: 出简易後端,两个就可以直接沟通了 08/09 12:36