I am trying to access a shared_memory from a subprocess but I am having errors like:
shm = shared_memory.SharedMemory(name=line.decode('utf-8'), create=False)
File "/usr/lib/python3.8/multiprocessing/shared_memory.py", line 100, in __init__
self._fd = _posixshmem.shm_open(
FileNotFoundError: [Errno 2] No such file or directory: '/psm_a5c1de7f'
Take the sample code for reference:
in mysubprocess.py
from multiprocessing import shared_memory
s = "some string"
shm = shared_memory.SharedMemory(create=True, size=len(s))
buffer = shm.buf
buffer[:] = bytes(s, 'utf-8')
print(shm.name)
in test.py
import subprocess
from multiprocessing import shared_memory
proc = subprocess.Popen(['python', 'mysubprocess.py'],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
for line in proc.stdout.readlines():
line = line.strip()
shm = shared_memory.SharedMemory(name=line.decode('utf-8'), create=False)
buffer = shm.buf
print(bytes(buffer))
I am using Windows 10, but running it on docker ubuntu 20.04 with python 3.8.5