温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么使用python多进程程序打包成exe

发布时间:2022-12-27 16:25:01 来源:亿速云 阅读:139 作者:iii 栏目:开发技术

这篇文章主要介绍了怎么使用python多进程程序打包成exe的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用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的五大特点是什么

python的五大特点:

1.简单易学,开发程序时,专注的是解决问题,而不是搞明白语言本身。

2.面向对象,与其他主要的语言如C++和Java相比, Python以一种非常强大又简单的方式实现面向对象编程。

3.可移植性,Python程序无需修改就可以在各种平台上运行。

4.解释性,Python语言写的程序不需要编译成二进制代码,可以直接从源代码运行程序。

5.开源,Python是 FLOSS(自由/开放源码软件)之一。

关于“怎么使用python多进程程序打包成exe”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“怎么使用python多进程程序打包成exe”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI