Pip构建选项以使用多核

 无敌lili699_461 发布于 2022-12-18 10:30

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

make -j4

我怎么能为pip做同样的事情?

1 个回答
  • 解决这个问题的最终方法

    因为所有的c/cpp文件都是使用makecommend 编译的,并且make有一个选项可以指定使用多少cpu核来编译源代码,我们可以做一些技巧make.

      备份原始make命令:

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

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

      make.bak --jobs=6 $@

    所以在那之后,甚至不用c libs编译python,而且其他包含c libs的人将加速编译6个核心.实际上,使用make命令编译的所有文件都会加速.

    还有祝你好运.


    使用: - install-option =" - jobs = 6".

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

    我有同样的要求,使用pip install来加快编译进度.我的目标pkg是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或者你喜欢的其他方式并输入: make.bak --jobs=6 $* 我不熟悉bash,所以我不确定这是否是纠正bash代码.我在windows中写这个评论.关键是将make重命名为make.bak,然后创建一个新的make,使用这个新的make来调用make.bak并添加param --jobs = 6

    2022-12-18 10:32 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有