点构build选项来使用多核

我发现在编译包的时候,pip只使用单核。 由于一些python包需要一些时间来使用pip来构build,所以我想在机器上使用多核。 当使用Makefile时,我可以像下面的命令那样做:

make -j4 

我怎样才能达到同样的东西的点子?

从我可以告诉它不像pip有这个能力,但我可能是错的。

要在python中进行多处理,你可以使用多处理包,[这里是我find的指南]( http://pymotw.com/2/multiprocessing/basics.html ),如果你感兴趣的话可以这样做,这是一个链接到讨论它的python文档。 我还发现这个问题很有用, 多处理与线程化Python ,以确保多处理做了我以为它做了,利用多个CPU。

我已经通过pip源代码( 在这里可以find )寻找多处理包的参考,并没有发现任何使用该包。 这意味着点不使用/支持多处理。 从我可以告诉/pip/commands/install.py文件是您的问题感兴趣的,因为它运行pip install <package>时调用。 对于这个文件,特别是import

 from __future__ import absolute_import import logging import os import tempfile import shutil import warnings from pip.req import InstallRequirement, RequirementSet, parse_requirements from pip.locations import virtualenv_no_global, distutils_scheme from pip.basecommand import Command from pip.index import PackageFinder from pip.exceptions import ( InstallationError, CommandError, PreviousBuildDirError, ) from pip import cmdoptions from pip.utils.deprecation import RemovedInPip7Warning, RemovedInPip8Warning 

你可以看到没有任何多处理包的参考,但我确实检查了所有其他文件。

此外,我检查了pip安装文档 ,发现没有提到使用多核心进行安装。

TL; DR:Pip不会做你所问的。 我可能是错的,因为我没有看到这个源头,但我很确定它不支持它。

使用:– install-option =“ – jobs = 6”

 pip3 install --install-option="--jobs=6" PyXXX 

我有同样的需求,使用pip安装来加快编译进度。 我的目标包是PySide。 起初我用pip3 install pyside ,花了我近30分钟(AMD 1055T 6核,10G RAM),只有一个核心负载100%。

pip3 --help中没有线索,但是我发现了很多选项,比如pip install -u pyXXX ,但是我不知道'-u'是什么,这个参数也不是pip --help 。 我尝试了'pip3 install –help',接下来的答案是: install -option

我读了PySide代码的代码,发现另一个线索: OPTION_JOBS = has_option('jobs') ,我把ipdb.set_trace()放在那里,最后了解如何使用pip install来编译多核。

我花了大约6分钟。

————————–更新———————– ——-

作为下面的注释,我最终使用了这样的技巧: cd /usr/bin sudo mv make make.bak touch make然后编辑make: vim make或者其他你喜欢的方式,并且input: make.bak --jobs=6 $*不熟悉bash,所以我不确定这是否是正确的bash代码。 我正在写这个评论在Windows中。 关键是重命名make make.bak,然后创build一个新的make,使用这个新的make来添加参数调用make.bak –jobs = 6