[英]Python multiprocessing does nothing
從 Visual Studio > Python 控制台應用程序運行...操作系統是 Windows 10。
下面的簡單代碼不起作用。 window 會停留幾秒鍾,然后關閉,不會在 window 上打印任何內容。
請幫我解決這個問題。 這一直令人困惑,當我從 Internet 上看到很多人報告了這一點時,如果您提供可以在我的環境中工作的解決方案,我真的很感激。 謝謝。
import multiprocessing
import sys
import os
def foo():
print('hello')
if __name__ == '__main__':
multiprocessing.freeze_support()
multiprocessing.set_executable(os.path.join(sys.exec_prefix, 'pythonw.exe'))
p = multiprocessing.Process(target=foo)
p.start()
pythonw.exe
是 GUI window,而不是控制台。 您希望在哪里看到您打印的“你好”? 如果您想確保另一個進程中的代碼實際運行,請將“hello”寫入某個文件,或打開 window:
from tkinter import Tk
def foo():
print('hello')
t = Tk()
t.mainloop()
或者
from pathlib import Path
def foo():
Path("some_file.txt").write_text("hello")
最后還要調用p.join()
以等待該過程完成。
是否有使用“set_executable”function 的理由? 嘗試查看sys.executable
的值與您要使用的解釋器不同嗎? 如果是這樣,您要使用的可執行文件的路徑是什么?
嘗試使用以下命令python <path_to_script.py>
在cmd中運行它
import multiprocessing
import sys
import os
def foo():
print('hello')
if __name__ == '__main__':
#multiprocessing.freeze_support()
#multiprocessing.set_executable(os.path.join(sys.exec_prefix, 'pythonw.exe'))
p = multiprocessing.Process(target=foo)
p.start()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.