[英]Multiprocessing with PyAudio and Tkinter in Python not working on Mac OS X
我正在嘗試使用多處理庫制作一個同時包含圖像和音頻處理的 GUI 應用程序。 但是,在 Mac OS X 上測試時相同的代碼似乎不起作用,除非我刪除import tkinter語句
import pyaudio
# The import statement below is causing the problem
import tkinter as tki
import multiprocessing
import threading
def do_task():
p = pyaudio.PyAudio()
print("Task complete")
if __name__ == '__main__':
p = multiprocessing.Process(target=do_task, args=())
p.start()
# Code works when import statement is placed here
# import tkinter as tki
p.join()
上面的代碼打印任務在Windows上完成,還打印任務完成后,import語句被移動,這是不是因為我需要在我初始化UI開始多了良好的解決方案。
這個問題有什么解決方法嗎?
如果我們知道錯誤到底是什么,那就太好了,所以如果你能把它復制進去就好了。 ^^ 無論如何,我對multiprocessing.Process
也沒有很好的經驗,所以我使用threading.Thread
代替。 因此,我用Thread
作為元類定義了一個新類,並將運行的函數定義為run
。 例如:
from threading import Thread
class Audio(Thread):
def __init__(self,...):
Thread.__init__(self)
#...
def run(self):
#audio stuff
class GUI(Thread):
def __init__(self,...):
Thread.__init__(self)
#...
def run(self):
#GUI stuff
a,g=Audio(),GUI()
a.start(),g.start()
我不知道這是否真的有幫助,但我希望如此。 :D
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.