GVKun编程网logo

multiprocessing.freeze_support()

7

在本文中,我们将详细介绍multiprocessing.freeze_support的各个方面,并为您提供关于的相关解答,同时,我们也将为您带来关于ImportError:cannotimportna

在本文中,我们将详细介绍multiprocessing.freeze_support的各个方面,并为您提供关于的相关解答,同时,我们也将为您带来关于ImportError: cannot import name ''Process'' from ''multiprocessing''、multiprocessing、multiprocessing.Manager()dict()setdefault()是否损坏?、multiprocessing.Manager()。dict()。setdefault()是否损坏?的有用知识。

本文目录一览:

multiprocessing.freeze_support()

multiprocessing.freeze_support()

为什么在“冻结”以生成Windows可执行文件时,多处理模块需要调用特定功能才能工作?

答案1

小编典典

原因是fork()在Windows上缺少(这并非完全正确)。因此,在Windows上,通过创建一个
进程来 模拟 fork,在该
进程中,正在子进程中运行的代码在Linux中运行。由于代码将在技术上不相关的流程中运行,因此必须先将其交付那里才能运行。它的交付方式是先对其进行酸洗,然后通过管道将其从原始流程发送到新流程。另外,此新进程还必须通过传递--multiprocessing-fork命令行参数来通知它必须运行管道传递的代码。如果你看一看实现的freeze_support()函数的任务是检查正在运行的进程是否应该运行通过管道传递的代码。

ImportError: cannot import name ''Process'' from ''multiprocessing''

ImportError: cannot import name ''Process'' from ''multiprocessing''

from multiprocessing import Process

import os


def run_proc(name):
print ''Run child process %s (%s)...'' % (name, os.getpid())


if __name__==''__main__'':
    print ''Parent process %s.'' % os.getpid()
    p = Process(target=run_proc, args=(''test'',))
    print ''Process will start.''
    p.start()
    p.join()

    print ''Process end.''

 

但是报错

ImportError: cannot import name ''Process''

查询后是由于.py文件名multiprocessing冲突,于是修改文件名,并删除之前编译所生成的multiprocess.pyc文件,运行成功。

Parent process 16572.
Process will start.
Run child process test (16575)...
Process end.
[Finished in 0.1s]

multiprocessing

multiprocessing

1. 多进程

#!/bin/env python
from multiprocessing import Process
import os,time
def run_01():
    os.system(''python /home/kkk/plt.py'')

def run_02():
    while 1:  
        try:
            os.system(''python /home/kkk/bing.py'')
            time.sleep(300)
        except:
            pass

if __name__ == "__main__":
    p1=Process(target=run_01,)
    p2=Process(target=run_02,)
    p1.start()
    p2.start()


multiprocessing.Manager()dict()setdefault()是否损坏?

multiprocessing.Manager()dict()setdefault()是否损坏?

其后期且可能是愚蠢的部门提出:

>>> import multiprocessing
>>> mgr = multiprocessing.Manager()
>>> d = mgr.dict()
>>> d.setdefault('foo',[]).append({'bar': 'baz'})
>>> print d.items()
[('foo',[])]         <-- Where did the dict go?

鉴于:

>>> e = mgr.dict()
>>> e['foo'] = [{'bar': 'baz'}]
>>> print e.items()
[('foo',[{'bar': 'baz'}])]

版:

>>> sys.version
'2.7.2+ (default,Jan 20 2012,23:05:38) \n[GCC 4.6.2]'

虫子还是臭虫?

编辑:更多相同,在python 3.2上:

>>> sys.version
'3.2.2rc1 (default,Aug 14 2011,21:09:07) \n[GCC 4.6.1]'

>>> e['foo'] = [{'bar': 'baz'}]
>>> print(e.items())
[('foo',[{'bar': 'baz'}])]

>>> id(type(e['foo']))
137341152
>>> id(type([]))
137341152

>>> e['foo'].append({'asdf': 'fdsa'})
>>> print(e.items())
[('foo',[{'bar': 'baz'}])]

字典代理中的列表如何不包含其他元素?

multiprocessing.Manager()。dict()。setdefault()是否损坏?

multiprocessing.Manager()。dict()。setdefault()是否损坏?

其后期且可能是愚蠢的部门提出:

>>> import multiprocessing
>>> mgr = multiprocessing.Manager()
>>> d = mgr.dict()
>>> d.setdefault('foo',[]).append({'bar': 'baz'})
>>> print d.items()
[('foo',[])]         <-- Where did the dict go?

鉴于:

>>> e = mgr.dict()
>>> e['foo'] = [{'bar': 'baz'}]
>>> print e.items()
[('foo',[{'bar': 'baz'}])]

版:

>>> sys.version
'2.7.2+ (default,Jan 20 2012,23:05:38) \n[GCC 4.6.2]'

虫子还是臭虫?

编辑:更多相同,在python 3.2上:

>>> sys.version
'3.2.2rc1 (default,Aug 14 2011,21:09:07) \n[GCC 4.6.1]'

>>> e['foo'] = [{'bar': 'baz'}]
>>> print(e.items())
[('foo',[{'bar': 'baz'}])]

>>> id(type(e['foo']))
137341152
>>> id(type([]))
137341152

>>> e['foo'].append({'asdf': 'fdsa'})
>>> print(e.items())
[('foo',[{'bar': 'baz'}])]

字典代理中的列表如何不包含其他元素?

今天关于multiprocessing.freeze_support的介绍到此结束,谢谢您的阅读,有关ImportError: cannot import name ''Process'' from ''multiprocessing''、multiprocessing、multiprocessing.Manager()dict()setdefault()是否损坏?、multiprocessing.Manager()。dict()。setdefault()是否损坏?等更多相关知识的信息可以在本站进行查询。

本文标签: