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内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python打包exe文件一步步图解明了简单

    兄弟们,我来了!!! 实在是太忙了,没得时间更新,昨天下午这篇还是上周的草稿,太难了~ 当然,顺便再给它换个图标. 首先把你的代码准备好,尽量不要中文路径,容易报错. 这个是要用的模块 Pyinstaller 它不是Python默认有的模块,所以需要我们安装一下,直接 pip install Pyinstaller 不会安装模块的小伙伴参考:如何安装python模块, python模块安装失败的原因以及解决办法,看这样就安装好了. 模块安装好后我们开始打包,注意,所有的文件都尽量用英文,免得报错

  • python打包exe开机自动启动的实例(windows)

    一.背景 简单的写个.exe程序,没必要去学习mfc.c++等,可以学习python.python可以轻易的调用windows的api,轻松的实现你想干的事.下面就是实现打包的exe文件开机自动运行. 二.实现 #!/usr/bin/python # -*- coding: UTF-8 -*- import win32api import win32con class AutoRun(): def __init__(self): name = 'translate' # 要添加的项值名称 pat

  • 将python文件打包exe独立运行程序方法详解

    首先需要安装pyinstaller库. pip install pyinstaller exe程序打包步骤 cmd 进入要编译的python文件所在的文件夹, 然后 pyinstaller -F hello.py hello.py就是我要打包的文件. 常用参数: -F 生成单个的exe文件. -w 隐藏运行窗口. -h 可以查看帮助信息,更多指令可以通过这个查看. 最开始 D:\pyinstaller 目录下只有hello.py这一个文件,其它的文件都是后生成的. 生成的exe文件在dist里,

  • python pyinstaller打包exe报错的解决方法

    今天用python 使用pyinstaller打包exe出现错误 环境pyqt5 + python3.6 32位 在导入pyqt5包之前加上如下代码 import sys import os if hasattr(sys, 'frozen'): os.environ['PATH'] = sys._MEIPASS + ";" + os.environ['PATH'] from PyQt5.QtWidgets import QApplication, QMainWindow from py

  • Python三种打包exe方法案例教程

    cxfreeze,pyinstaller,py2exe三种方式 目前网上能获取的免费的Python打包工具主要有三种:py2exe.PyInstaller和cx_Freeze.其中PyInstaller最新版只支持Python2.7,py2exe计划开发支持python3.x版本,但是目前还没有完成.只有cx_Freeze支持python3.X版本,也支持python2.X版本.个人也觉得cxfreeze比较简单,不容易出错. cxfreeeze有几种文件形式,msi和whl.msi是安装包,直

  • Python3打包exe代码2种方法实例解析

    这篇文章主要介绍了Python3打包exe代码2种方法实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 cx_Freeze(不推荐) 以前只用 cx_Freeze 支持将 python3 打包成 exe ,示例如下: 在你要打包的 python 文件下新建这个 setup.py 文件: #!/usr/bin/env python # -*- coding: utf-8 -*- from cx_Freeze import setup, Ex

  • python带参数打包exe及调用方式

    1.举个栗子:XX.py import sys arg1 = sys.argv[1] arg2 = sys.argv[2] print(arg1) print(arg2) 平时运行python XX.py arg1 arg2 打包完成后运行XX.exe arg1 arg2 打包完成后运行后并获得print输出 output=os.popen('path\XX.exe arg1 arg2').read() 2.一般打包都是使用pyinstaller -F -w xxx.py,传入参数之后没有任何提

  • 使用cx_freeze把python打包exe示例

    需要使用到的文件wxapp.py, read_file.py, setup.py 复制代码 代码如下: #!/usr/bin/env python# -*- coding: utf-8 -*-#file: wxapp.py import wximport osimport sysimport read_file class Frame(wx.Frame):    def __init__(self):        wx.Frame.__init__(self, parent=None, tit

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

    粘贴一下部分的多进程代码 if __name__ == '__main__': """"流程模拟""" multiprocessing.freeze_support() # 打包成exe时,需要该语句,防止系统无限创建子线程 print(f"{time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())} - [主进程] - 程序已启动") if WORKERS >

  • 通过Py2exe将自己的python程序打包成.exe/.app的方法

    Windows 10 x64 macOS Sierra 10.12.4 Python 2.7 准备好装哔~了么,来吧,做个真正意义上的绿色小软件 Win下发布应用 起因 今天实验室同学看到我的乞丐版二输入规则器,他挺感兴趣的,也想要玩玩,但是他没有装python的环境,总不能让他一直玩我电脑吧,所以想到了将程序打包成exe,直接运行!想法一出来,根本挡不住啊,说干就干,先百度python打包exe,一大堆答案,我整理了一下,大概有Py2exe和pyinstaller两种,但是,我给你看张图 这是

  • 使用PyInstaller库把Python程序打包成exe

    一.pyinstaller简介 Python是一个脚本语言,被解释器解释执行.它的发布方式: .py文件:对于开源项目或者源码没那么重要的,直接提供源码,需要使用者自行安装Python并且安装依赖的各种库.(Python官方的各种安装包就是这样做的) .pyc文件:有些公司或个人因为机密或者各种原因,不愿意源码被运行者看到,可以使用pyc文件发布,pyc文件是Python解释器可以识别的二进制码,故发布后也是跨平台的,需要使用者安装相应版本的Python和依赖库. 可执行文件:对于非码农用户或者

  • python将写好的程序打包成exe可执行文件

    目录 1.安装pyinstaller 2.使用pyinstaller 打包程序 2.1 开始打包 2.2 查收exe文件 前言: 首先 如果你的python是64位的编译器,那么打包的结果就只能在64位的电脑运行,如果你希望你打包的结果可以在32位电脑运行,那么你就安装个32位的python编译器.其他操作都一样. 1.安装pyinstaller pip install pyinstaller 2.使用pyinstaller 打包程序 2.1 开始打包 先进入进入文件路径然后开始打包 pyins

  • Python 3.6打包成EXE可执行程序的实现

    1.下载pyinstaller python 3.6 已经自己安装了pip,所以只需要执行 pip install pyinstaller就可以了 2.打包程序 进入到你你需要打包的目录:比如我在H:\xcyk 开始打包,执行pyinstaller xxx.py 我们发现,竟然报错!!!,然后去官网看,说不支持python3.6打包 3.解决pyinstaller 暂时不支持python3.6打包方法 为什么说是暂时呢.. 因为,3.6的打包的目前正在完善中... 当然你可以先下载最新的版本暂时

  • java程序打包成exe与jar的图文教程

    Java程序打包 1.java工程源码打包成jar包 选中工程,右键选择export... 选择Runnable JAR file (1)launch configuration 启动配置,java程序的启动类,如果工程没有生成类,先执行"选中工程--run as---Java Application " (2)Export Destination 输出文件名称,要生成的jar文件 2.jar包转换成.exe 使用exe4j4.0将jar生成exe执行文件 破解的exe4j4.0可在下

  • Windows下用py2exe将Python程序打包成exe程序的教程

    py2exe在sourceforge 的下载只支持到2.7. 针对python3.0+的版本,需要自己编译. 1.下载源码 svn checkout svn://svn.code.sf.net/p/py2exe/svn/trunk py2exe-svn 2.编译环境 这里使用的是vs2014. 3.安装 进入py2exe-3 python setup.py install 这里会进行编译.安装. 此外,python默认使用的是vs9,针对vs2014,需要改下文件: 复制代码 代码如下: Lib

  • 将Python代码打包成.exe可执行文件的完整步骤

    前言 有时候我们需要将自己写的代码打包成exe文件,给别人使用需要怎么办呢?以下将讲解Python代码如何打包成.exe文件. 1. 下载pyinstaller PyInstaller是一个十分有用的第三方库,它能够在Windows.Linux. Mac OS X 等操作系统下将 Python 源文件打包,通过对源文件打包, Python 程序可以在没有安装 Python 的环境中运行,也可以作为一个 独立文件方便传递和管理. 因为Python中有很多三方包,我们想要这些三方包也包含在里面就需要

  • Python打包成exe文件的详细操作指南

    目录 前言 一.安装pyinstaller 1.1 安装pyinstaller,使用安装命令: 1.2 如果遇到需要更新版本请输入: 1.3 检查是否正确安装 1.4 稍等,水一下; 二.python打包成exe文件(附带图标打包) 2.1 第一种:cd到指定文件夹打包存放 2.2 第二种方法:cd到py源文件夹内打包存放 2.3最终效果 参考:命令解释 总结 前言 我原本是学C\C++,这是本人第一篇关于python的文章.请多多关照! 对于python为什么要打包成exe文件,是因为传输源文

  • 详解如何将c语言文件打包成exe可执行程序

    如何将编写的c语言程序打包成exe可执行文件呢? 以前我们写程序很多是在编辑器上,让编辑起来编译运行我们的程序.如果想将其打包成exe可执行文件该如何做? 我这里推荐使用codeBlocks的gcc命令,因为比较简单.像vs这种编辑器就像是一把屠龙刀.功能过于复杂,需要注意的很多. 如何适用codeBlock的gcc命令呢? 我们来认识gcc命令是什么?gcc包括c和c++编译器 gcc和cc是一样的,c++和g++是一样的,一般c程序就用gcc编译,c++程序就用g++编译. 我们用gcc命令

随机推荐