在哪里将freeze_support()放在Python脚本中?

发布于 2021-01-29 16:18:06

我对freeze_support()for感到困惑,没有它multiprocessing我得到了Runtime Error。我只运行脚本,没有定义函数或模块。我还能使用吗?还是我要导入的软件包正在使用它?

是文档。

请注意,特定问题与scikit- learn调用有关GridSearchCV,它试图并行生成进程。我不确定是否需要为此冻结脚本或被调用的某些代码(来自Anaconda发行版)。如果详细信息与此问题有关,请转到更具体的问题

关注者
0
被浏览
157
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    在Windows上,必须保护 所有multiprocessing使用代码if __name__ == "__main__":

    为了安全起见,我将当前所有代码放在main()函数的脚本顶层,然后在顶层执行此操作:

    if __name__ == "__main__":
        main()
    

    有关为何需要这样做的说明,请参见此处的“安全导入主模块”小节。您可能根本不需要调用freeze_support,尽管包括它不会有任何损害。

    请注意,if __name__ == "__main__"无论如何,最好的做法是对脚本使用防护,因此,如果您发现import将来需要将脚本转换为另一个脚本,则不会意外执行代码。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看