Windows下Python执行多进程报错,Linux环境正常运行

错误信息

NameError: name 'check_process' is not defined

代码片段

if __name__ == '__main__':
    check_process = xx_normal_class()
def Update_xx(domain):
    ip = check_process.normal_domain_to_ip(domain)

原逻辑

认为if __name__ == '__main__':内的变量为全局变量,在服务器上执行也正常执行

错误原因

问题出在Windows 上多进程的实现
在 Windows 上,多进程实现子进程的时会自动 import 启动它的文件

if name == 'main:内容执行条件: 该文件作为脚本直接执行

import 到其他的 python 脚本中被调用(模块重用)时不会执行,因此子进程的全局变量中不存在check_process)


版权声明:本文为weixin_44215113原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。