基于wxPython的多进程pyaudio冻结程序

基于wxPython的多进程pyaudio冻结程序,python,wxpython,pyaudio,Python,Wxpython,Pyaudio,在我的应用程序中调用p=pyaudio.pyaudio()会导致它在多进程内部调用时冻结。注意,我使用pythonw而不是python运行应用程序。当我卸下wx模块时,它工作正常。有没有关于如何修复的建议?我正在MacOS上使用python 3.5 from app import frame, app import pyaudio import time import multiprocessing as mp def worker(): p = pyaudio.PyAudio()

在我的应用程序中调用p=pyaudio.pyaudio()会导致它在多进程内部调用时冻结。注意,我使用pythonw而不是python运行应用程序。当我卸下wx模块时,它工作正常。有没有关于如何修复的建议?我正在MacOS上使用python 3.5

from app import frame, app
import pyaudio
import time
import multiprocessing as mp

def worker():
    p = pyaudio.PyAudio()
    while True:
        print('starting worker')
        print('pyaudio', p)
        time.sleep(1)

if __name__ == '__main__':
    p1 = mp.Process(target=worker)
    p1.start()

    frame.Show()
    app.MainLoop()

    p1.join()
app.py

import wx

app = wx.App()
frame = wx.Frame(parent=None, title='Hello World')


frame.Show()
app.MainLoop()

当您导入
app
模块时,它正在执行所有代码并在
app.MainLoop()
处阻塞,同时处理和分派事件。在
MainLoop
返回之前,控制不会返回到主模块