簡體   English   中英

在 Python 腳本中將 freeze_support() 放在哪里?

[英]where to put freeze_support() in a Python script?

我對使用freeze_support()進行multiprocessing感到困惑,如果沒有它,我會收到Runtime Error 我只是在運行一個腳本,而不是定義一個函數或一個模塊。 我還能用嗎? 或者我導入的包應該使用它嗎?

是文檔。

請注意,具體問題是關於scikit-learn調用GridSearchCV ,它試圖並行生成進程。 我不確定我的腳本是否需要為此凍結,或者調用的一些代碼(來自 Anaconda 發行版)。 如果詳細信息與此問題相關,請轉到更具體的問題

在 Windows 上,所有使用multiprocessing代碼都必須由if __name__ == "__main__":

因此,為了安全起見,我會將當前位於腳本頂層的所有代碼放在main()函數中,然后在頂層執行此操作:

if __name__ == "__main__":
    main()

請參閱 此處的“安全導入主模塊”小節以了解為什么需要這樣做。 您可能根本不需要調用freeze_support ,盡管包含它不會有任何傷害。

請注意,無論如何,最好對腳本使用if __name__ == "__main__"保護,這樣如果您發現在將來的某個時候需要import腳本導入另一個腳本,代碼就不會意外執行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM