如何在Python中同时使用COM和多处理?

如何在Python中同时使用COM和多处理?,python,multiprocessing,win32com,Python,Multiprocessing,Win32com,我正试着做两个过程,让它们相互交流。其中一个通过使用win32com的COM库获取值,另一个只是通过队列从第一个进程获取值并打印出来。我认为下面的代码没有问题,但它不起作用。进程根本不显示值。如果我只是让第一个进程打印同一进程中的队列值 item = self.q.get() print(item) 它显示队列中的值。因此,我认为将值放入队列没有问题,因此,使用win32com通过队列交换值时可能会出现一些问题 有谁能给我一些建议吗?您是否尝试过在listener和RealTrevenHand

我正试着做两个过程,让它们相互交流。其中一个通过使用win32com的COM库获取值,另一个只是通过队列从第一个进程获取值并打印出来。我认为下面的代码没有问题,但它不起作用。进程根本不显示值。如果我只是让第一个进程打印同一进程中的队列值

item = self.q.get()
print(item)
它显示队列中的值。因此,我认为将值放入队列没有问题,因此,使用win32com通过队列交换值时可能会出现一些问题


有谁能给我一些建议吗?

您是否尝试过在listener和RealTrevenHandler类中将q显式声明为全局的?例如:

class listener(mp.Process):
    global q
    def __init__(self):
        mp.Process.__init__(self)
        self.q=q

另一种在至少多个线程之间传递变量的方法是使用buildins模块,但我不确定多处理是否有这么大的不同。

谢谢您的回答。我试着这样声明q,但没有区别。是的,我认为这个线程可能与我的问题有关,但我不确定在使用多处理和DispatchWithEvents时是否相同。
class listener(mp.Process):
    global q
    def __init__(self):
        mp.Process.__init__(self)
        self.q=q