python多进程程序打包成exe的问题

 更新时间:2022年12月25日 09:17:48   作者:野生大虾  
这篇文章主要介绍了python多进程程序打包成exe的问题的相关资料,需要的朋友可以参考下

粘贴一下部分的多进程代码

if __name__ == '__main__':
    """"流程模拟"""
    multiprocessing.freeze_support() # 打包成exe时,需要该语句,防止系统无限创建子线程
    print(f"{time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())} - [主进程] - 程序已启动")
    if WORKERS > 0:
        print(f"{time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())} - [主进程] - 当前为并发爬取,每次采集{WORKERS}条url")
    else:
        print(f"{time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())} - [主进程] - 当前为单线程爬取,时间间隔为{INTERVAL}秒")

    init_data_queue = multiprocessing.Queue()       # 从数据库里取出来的需要爬取的url等信息
    result_data_queue = multiprocessing.Queue()     # 爬取的结果
    wait_to_insert_queue = multiprocessing.Queue()  # 等待写入数据库的数据 已经去重 符合insert的格式要求

    p1 = multiprocessing.Process(target=get_remote_data, args=(init_data_queue, wait_to_insert_queue), name='[数据库交互进程]')
    p2 = multiprocessing.Process(target=scrapy_wechat, args=(init_data_queue, result_data_queue), name='[爬虫进程]')
    p3 = multiprocessing.Process(target=make_data, args=(result_data_queue, wait_to_insert_queue), name='[数据处理进程]')
    try:
        p1.start()
        p2.start()
        p3.start()
    except Exception as e:
        print(f"{time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())} - [主进程] - 错误信息: {e}")

程序打包成exe文件后,启动时会疯狂创建子进程,程序来回在if WORKERS > 0:这行代码中执行,即无法正常工作,还会导致电脑逐渐卡死。解决的办法为:在程序入口前,加入multiprocessing.freeze_support()即可解决此事。值得注意的时,该语必须写在if __name__ == "__main__"的下一句,如果没有main语句,也会出错。

到此这篇关于python多进程程序打包成exe的问题的文章就介绍到这了,更多相关python打包成exe内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用Python导出Excel图表以及导出为图片的方法

    使用Python导出Excel图表以及导出为图片的方法

    这篇文章主要介绍了使用Python导出Excel图表以及导出为图片的方法,Python相关模块在Windows下操作office非常方便,需要的朋友可以参考下
    2015-11-11
  • Python sorted对list和dict排序

    Python sorted对list和dict排序

    这篇文章主要介绍了Python sorted对list和dict排序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • pytorch使用resnet快速加载官方提供的预训练模型

    pytorch使用resnet快速加载官方提供的预训练模型

    这篇文章主要介绍了pytorch使用resnet快速加载官方提供的预训练模型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • 关于numpy.concatenate()函数的使用及说明

    关于numpy.concatenate()函数的使用及说明

    这篇文章主要介绍了关于numpy.concatenate()函数的使用及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • 用Python进行websocket接口测试

    用Python进行websocket接口测试

    这篇文章主要介绍了用Python进行websocket接口测试,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-10-10
  • 读取本地json文件,解析json(实例讲解)

    读取本地json文件,解析json(实例讲解)

    下面小编就为大家分享一篇读取本地json文件,解析json的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • python中关于CIFAR10数据集的使用

    python中关于CIFAR10数据集的使用

    这篇文章主要介绍了python中关于CIFAR10数据集的使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Python函数的周期性执行实现方法

    Python函数的周期性执行实现方法

    这篇文章主要介绍了Python函数的周期性执行实现方法,涉及Python使用sched模块实现函数周期性调度触发的相关技巧,需要的朋友可以参考下
    2016-08-08
  • Pytest fixture及conftest相关详解

    Pytest fixture及conftest相关详解

    这篇文章主要介绍了Pytest fixture及conftest相关详解,fixture是在测试函数运行前后,由pytest执行的外壳函数,更多相关内容需要的朋友可以参考一下
    2022-09-09
  • python实现邻接表转邻接矩阵

    python实现邻接表转邻接矩阵

    这篇文章主要介绍了python实现邻接表转邻接矩阵,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12

最新评论