You need to enable JavaScript to run this app. Vagrant Ubuntu环境下bazel构建时pip_deps因SigKill终止问题求助
优惠活动
大模型
产品
解决方案
定价
更多

Vagrant Ubuntu环境下bazel构建时pip_deps因SigKill终止问题求助

问题产生原因

核心触发原因是Vagrant虚拟机分配的内存不足,结合pip运行参数的差异共同导致:

  • 直接执行pip3 install torch==1.7.1时,pip会默认拉取匹配当前系统、Python版本的预编译wheel包,不需要本地编译,内存占用极低,因此可以正常完成。
  • 执行python3 -m pip --isolated wheel torch==1.7.1或者bazel调用rules_python_external执行构建时,--isolated参数会忽略全局pip配置(包括自定义的PyPI镜像源),如果官方源没有匹配你环境的预编译torch 1.7.1 wheel包,pip会自动拉取源码进行本地编译,而PyTorch源码编译最低需要68G运行内存,Vagrant默认分配的12G内存无法支撑,触发系统OOM(内存溢出)机制,进程被发送SIGKILL信号强制终止。
    你观察到的rules_python_external报错行缺少换行符是旧版本rules_python的日志输出bug,并不影响构建逻辑,不是本次构建失败的根本原因。
解决方案
  • 调整Vagrant虚拟机内存配置:打开项目根目录的Vagrantfile,找到虚拟化配置段,将内存分配调整为至少8G,示例配置(VirtualBox provider为例):
    config.vm.provider "virtualbox" do |vb|
      vb.memory = "8192"
      # 可同步调整CPU核心数加快编译速度
      vb.cpus = "4"
    end
    
    修改完成后执行vagrant reload重启虚拟机生效。
  • 修正rules_python的pip运行参数:在WORKSPACE文件的pip仓库配置中,去掉不必要的--isolated参数,同时添加可用的PyPI镜像源配置,让pip可以直接拉取预编译的PyTorch wheel包,跳过本地编译流程。
  • 修复日志换行问题:升级rules_python依赖到0.20.0及以上的稳定版本,即可解决rules_python_external的报错输出缺换行符的问题。
  • (可选兜底方案)如果不想调整虚拟机内存,可以提前在Vagrant虚拟机内全局安装所有requirements.txt依赖,然后配置bazel使用系统Python环境的依赖,跳过rules_python的在线依赖拉取流程。

内容的提问来源于stack exchange,提问作者de1337ed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 10:15:02