作者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/m.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