zoukankan      html  css  js  c++  java
  • pyinstaller打包多线程代码,运行死循环?

    描述现象

    用pyinstaller打包了一个上传文件的脚本,里面有多个input在while循环内,然后启用了多线程上传,在编辑器中运行没问题,但是打包完后,就一直循环提示你input...

    解决

    在google了一段时间后,发现需要在执行入口之前调用

    multiprocessing.freeze_support()      # here
    

    然后程序的运行就正常了。

    python官网解释

    multiprocessing.freeze_support()
    
    Add support for when a program which uses multiprocessing has been frozen to produce a Windows executable. (Has been tested with py2exe, PyInstaller and cx_Freeze.)
    
    One needs to call this function straight after the if name == ‘main‘ line of the main module. For example:
    
    from multiprocessing import Process, freeze_support
    
    def f():
        print('hello world!')
    
    if __name__ == '__main__':
        freeze_support()
        Process(target=f).start()
    
    If the freeze_support() line is omitted then trying to run the frozen executable will raise RuntimeError.
    
    Calling freeze_support() has no effect when invoked on any operating system other than Windows. In addition, if the module is being run normally by the Python interpreter on Windows (the program has not been frozen), then freeze_support() has no effect.
    
  • 相关阅读:
    ajax获取后台数据,显示到input输入框里面
    js的比较运算符含义和示例和逻辑运算符
    Vue的 on +bind+if +for
    Vue入门例子
    Spring-AOP
    fatal: remote origin already exists git出现这个
    springmvc-文件上传下载
    springmvc-ajax
    查询Id最大的基础上+1
    bootstrap select去掉右边小三角
  • 原文地址:https://www.cnblogs.com/cpl9412290130/p/14224550.html
Copyright © 2011-2022 走看看