Passando objetos wxPython como argumentos de multiprocessador
Atualmente, estou escrevendo um programa em python com uma interface gráfica usando wxpython. O programa tem uma função que avalia vários scripts pythons e, portanto, desligará o gui. Estou tentando usar um processo separado para esta função. O problema é que a função precisa de algumas coisas da interface do usuário; um listctrl e um textctrl, para atualizar as informações sobre os scripts que foram executados. O seguinte erro é recebido ao tentar passar objetos wxpython para o processo
PicklingError: Can't pickle <type 'PySwigObject'>: attribute lookup __builtin__.PySwigObject failed
Método que cria e inicia o processo:
def CreateProcess():
q = Queue()
q.put(gui.caselist)
q.put(gui.textlog)
p = Process(target=runScripts, args=(q,))
p.start()
Parte do método que está sendo executado pelo processo:
def runScripts(q):
caselist = q.get()
text = q.get()