簡體   English   中英

如何在不同conda環境的兩個不同python進程之間交換數據?

[英]How to exchange data between two different python processes of different conda environments?

兩個 python 腳本 A 和 B 存在兼容性問題,需要單獨的 conda 環境。 這是場景。 當腳本A運行時,它向進程B發送數據(腳本B在不同的終端運行),進程B返回output給進程A(進程A不能休眠)。 我一直在使用pickle文件在這兩個進程之間交換數據,但是這種方法看起來很慢,我想加快速度,這對我的工作來說是必要的。

  1. 使用subprocess模塊使一個程序成為另一個程序的子程序,並通過標准輸入和標准輸出進行通信。 (最快)(注意您必須在命令中激活其他 anaconda 環境才能啟動子進程)
  2. 讓一個應用程序成為服務器並附加到本地主機上的套接字,另一個應用程序將成為使用套接字模塊的客戶端。 (最有組織和可擴展的解決方案)
  3. 使 memory 的一部分成為共享 memory 兩個應用程序都可以使用multiprocessing.shared_memory訪問和寫入和讀取(需要適當的同步,但可以比一次傳輸 GB 數據的第一個選項更快),(將其包裝在io.TextIOWrapper將使通信更容易,就像使用套接字一樣容易)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM