python - 使用多核的 Pip 构建选项

标签 python installation pip

我发现 pip 在编译包时只使用单核。由于使用 pip 构建一些 python 包需要一些时间,我想在机器上使用多核。使用 Makefile 时,我可以像以下命令一样:

make -j4

我怎样才能为 pip 实现同样的目标?

最佳答案

解决此问题的终极方法

因为所有的 c/cpp 文件都将使用 make 指令进行编译,而 make 有一个选项可以指定使用多少个 cpu 内核来编译源代码代码,我们可以在 make 上做一些技巧。

  1. 备份你原来的make命令:

    sudo cp/usr/bin/make/usr/bin/make.bak

  2. 编写一个“假”make命令,将--jobs=6附加到其参数列表中,并将它们传递给原始make命令make.bak:

    make.bak --jobs=6 $@

因此,在此之后,即使使用 c 库编译 python,但其他包含 c 库的编译器也会加快 6 个内核的编译速度。实际上所有使用 make 命令编译的文件都会加速。

祝你好运。


使用:--install-option="--jobs=6" (pip docs)。

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

我有同样的需求,使用 pip install 来加快编译进度。我的目标 pkg 是 PySide。一开始我使用pip3 install pyside,花了我将近30分钟(AMD 1055T 6-cores, 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()放在那里,终于明白了如何使用multicore来编译了 pip 安装。

我花了大约 6 分钟。

--------------更新-------- ----------

正如下面的评论,我终于使用了这样的技巧: cd/usr/bin sudo mv make make.bak 触摸制作 然后编辑 make: vim make 或其他你喜欢的方式并输入: make.bak --jobs=6 $* 我不熟悉 bash,所以我不确定这是否是正确的 bash 代码。我正在 Windows 中写此评论。关键是把make重命名为make.bak,然后新建一个make,用这个新make调用make.bak加上参数--jobs=6

关于python - 使用多核的 Pip 构建选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26228136/

相关文章:

android - 安装应用时错误提示内存不足

python - 在 python 2.7.9 中运行 pip search 时出现 SSL 错误

python-2.7 - pip 安装路径库

python - 使用 python 中的 writerow 附加到我的 csv

python - 在 Django 中连接字符串时如何换行

python - 将 DataFrame 展平为单行

python - 如何在 'partially' 安装 Python 包

python - llvmlite/numba 编译 : g++: error: unrecognized command line option ‘-Wcovered-switch-default’

c# - .NET 软件更新管理器

php - 在 Magento 安装期间哪些文件被更改