出于兼容性的原因,我需要两个Python解释器来运行,我的软件与MSYS2一起运行,但是不支持某些库(pythonnet,genicam2),需要直接在Windows上运行。两者都是Python 3.7。
我的软件以这种方式产生子流程:
supbrocess.Popen("<path_to_python> module.py")
对于机器视觉应用,我需要将大数据(从相机获取的图像)从第二个解释器传输到第一个解释器(与MSYS2一起运行)。
我开始在匿名映射中使用mmap,但是我不明白子进程应该如何访问该内存,尽管在documentation中,它看起来很简单:
import mmap
import os
mm = mmap.mmap(-1, 13)
mm.write(b"Hello world!")
pid = os.fork()
if pid == 0: # In a child process
mm.seek(0)
print(mm.readline())
mm.close()
如果我不使用os.fork
,应该如何让我的子子进程访问此共享内存?
编辑:
检查后,os.fork
仅在Unix上可用。因此看起来更加复杂。