Windows 7 x86上的Python 3.2.1中的多處理模塊似乎在擊敗我。多處理不會產生新進程
我有兩個模塊:servmain.py和sslserver.py。這個想法是(最終)編寫一個應用程序,它將使用SSL與客戶端進行通信。這是我已經失敗的部分。但是,我需要將服務器監聽器分解成獨立的進程,以便主進程可以完成其他一些任務。作爲一個虛擬測試,我告訴子進程打印「Hello World」來標準輸出並將文本寫入不存在的文本文件。
這裏是我的父進程(servmain.py)代碼:
from multiprocessing import Process
import logging
if __name__ == "__main__":
logger = multiprocessing.log_to_stderr()
logger.setLevel(logging.DEBUG)
#Fire up the server
listenerProcess = Process(target = sslserver.startServer)
listenerProcess.start()
logger.debug("Starting listener.")
listenerProcess.join()
logger.debug("Done.")
這裏是sslserver.py代碼:
def startServer():
print("Hello World")
f= open("testfile.txt", "w")
f.write("Hello world\n")
f.close()
當我運行servmain.py,我得到以下輸出:
[DEBUG/MainProcess]啓動監聽器。 [DEBUG/MainProcess]完成。
這是我所期望的。但是,testfile.txt尚未創建,並且沒有輸出到stdout。有沒有人知道爲什麼會發生這種情況?
只是爲了確保,你究竟做了'進口multiprocessing'和'進口sslserver' ,所以你的代碼實際上會按照你的說法運行? ('logger = multiprocessing.log_to_stderr()'和'listenerProcess = Process(target = sslserver.startServer)' ) – agf
是的,進口已經到位;代碼運行時沒有導入錯誤。 – wibarr
您確定要寫入您有權寫入的目錄嗎?你能否嘗試明確地將'testfile.txt'的路徑設置爲100%確定可寫的目錄? –