在Python3下的multiprocessing的安装问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Python3下的multiprocessing的安装问题相关的知识,希望对你有一定的参考价值。
上网找了找说再python3下multiprocessing不用装,但是利用爬虫进行多进程的时候程序不运行啊,也不报错,希望指点一下。
你用Anconda,一个集成很多工具的Python工具箱,这些库都有,免得你一个一个配了,此外,在Windows下配置Python就是累,建议用linux追问我是用的Anaconda,但是在多进程的时候代码不跑啊。。。
参考技术A python3是不用装啊, 没运行,也不报错,你要查看你的程序有没有问题,是不是阻塞了,比如join层级不对 参考技术B python3 安装 multiprocessing 库的时候提示 print 错误→ pip3 install multiprocessing
Collecting multiprocessing
Downloading multiprocessing-2.6.2.1.tar.gz (108kB)
100% |████████████████████████████████| 112kB 88kB/s
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/var/folders/vr/nlnk4jrj0sz31n6pzdp1h23r0000gp/T/pip-build-8qc0basf/multiprocessing/setup.py", line 94
print 'Macros:'
^
SyntaxError: Missing parentheses in call to 'print'
----------------------------------------
Command "python setup.py egg_info" failed追问
哥们,你这。。。发的是啥
Python多线程常用包对比
python由于本身的特质,不能实现真正的多核并行运算,但是有一些第三方库较好地模拟了在多核环境下的并行运算,例如pp包以及multiprocessing,那么哪种更能充分利用多核心呢?
这里我简单做下对比,首先放上结论:multiprocessing是最优秀的。
在实测过程中,我的CPU是4核8线程,multiprocessing能充分利用多核运算优势,使得每一颗CPU核心的负载基本相当,并且能够在8个进程核心上负载相当,总体上占满CPU性能,而pp包只能利用好4颗物理核心,对剩下的4个虚拟核心基本无视。
下面的示例代码,供大家运行参考:
import multiprocessing import time import pp def func(N): sum = 0 for i in xrange(N): sum += i return sum if __name__ == "__main__": multiprocessing.freeze_support() start = time.clock() for i in xrange(200000): sum = func(10000) print ">> normal: ", time.clock()-start start = time.clock() pool = multiprocessing.Pool(processes=8) jobs = [] for i in xrange(200000): jobs.append(pool.apply_async(func, (10000, ))) pool.close() pool.join() print ">> multiprocessing: ", time.clock() - start start = time.clock() jobs = [] job_server = pp.Server() job_server.set_ncpus(8) for i in xrange(200000): jobs.append(job_server.submit(func, (10000, ))) job_server.wait() print ">> pp: ", time.clock() - start job_server.print_stats()
以上是关于在Python3下的multiprocessing的安装问题的主要内容,如果未能解决你的问题,请参考以下文章
python3 multiprocessing Semaphore
多处理,Python3,Windows:TypeError:无法腌制 _thread.lock 对象
Python 3.6.8 - multiprocessing.Pool.apply_async() 不工作
如何释放 multiprocessing.sharedctypes.RawValue 和 multiprocessing.sharedctypes.RawArray?
multiprocessing:maxtasksperchild和chunksize冲突?
如何在 Python 3.7 中向 multiprocessing.connection.Client(..) 添加超时?