Python: Adgang til variable/funktioner mellem subprocesses
Hej. Jeg har følgende to små python scriptsAli.py :
--------
import os, subprocess, Tkinter
def spawn( ):
proc = subprocess.Popen( 'python d:\\python\\ali\\cell.py' )
cells.append( proc )
if __name__ == '__main__':
cells = []
os.putenv( 'Ali.pid', str( os.getpid( ) ) )
root = Tkinter.Tk( )
root.title( 'Ali' ) ;
root.geometry( '230x40+200+200' )
root.resizable( 0, 0 )
Tkinter.Button( root, text='Spawn', width=7, command=spawn ).grid( column=3, row=0, pady=8, padx=12 )
root.mainloop( )
cell.py :
---------
import os
if __name__ == '__main__':
pid = os.getpid( )
parid = os.getenv( 'Ali.pid' )
print pid, parid
Grundideen er at ali.py starter et antal af cell.py som subprocesser. Den del virker ganske fint. Problemet er at jeg ønsker at alle de forskellige processer skal kunne kommunikere direkte med hinanden. Det vil sige at hvis jeg har ali.py og et antal subprocesser så skal én subprocess kunne kommunikere direkte med en hvilken som helst anden subprocess, helst uden at skulle gå igennem ali.py først.
Jeg tænkte den mest naturlige måde at gøre dette på var ved at gøre 'cells' arrayet i ali.py globalt, sådan at alle subprocesser kan tilgå det frit. Jeg kan dog ikke finde noget som helst om dette i dokumentationen. Er det muligt?
Alternativt tænkte jeg at de forskellige subprocesser måske kunne tilgå ali.py og dennes variable/funktioner gennem dens pid på en eller anden måde, hvilket er grunden til at ali.py pt. sætter en environment variabel med sit pid. Jeg har dog heller ikke kunnet finde nogen måde at bruge det til noget konstruktivt.