Ray项目从源码构建指南:开发者环境搭建全解析

Ray项目从源码构建指南:开发者环境搭建全解析

ray ray-project/ray: 是一个分布式计算框架,它没有使用数据库。适合用于大规模数据处理和机器学习任务的开发和实现,特别是对于需要使用分布式计算框架的场景。特点是分布式计算框架、无数据库。 ray 项目地址: https://gitcode.com/gh_mirrors/ra/ray

前言

Ray作为分布式计算框架,其源码构建过程涉及多个技术栈的集成。本文将深入讲解如何从零开始搭建Ray的开发环境,帮助开发者快速上手项目贡献。

环境准备阶段

虚拟环境配置

为什么需要虚拟环境?

  • 隔离项目依赖,避免版本冲突
  • 保持开发环境纯净,便于问题排查

两种主流方案对比:

| 方案 | 优点 | 缺点 | |------|------|------| | conda | 跨平台支持好 | 体积较大 | | venv | Python内置 | 需要手动升级工具链 |

conda环境创建示例:

conda create -c conda-forge python=3.9 -n ray-dev
conda activate ray-dev

venv环境创建注意事项:

python -m venv ray-venv
source ray-venv/bin/activate
# 必须升级基础工具链
python -m pip install --upgrade pip wheel setuptools

纯Python开发模式

适用场景

  • 仅修改RLlib/Tune/Autoscaler等Python模块
  • 避免完整构建的长时间等待

操作流程

  1. 安装最新版Ray wheel包
pip install -U https://s3-us-west-2.amazonaws.com/ray-wheels/latest/ray-3.0.0.dev0-cp39-cp39-manylinux2014_x86_64.whl
  1. 建立本地代码链接
python python/ray/setup-dev.py

该脚本会将安装包中的关键目录替换为本地代码的符号链接,实现实时修改生效。

注意事项

  • 升级/卸载前必须先删除符号链接
  • 可通过参数跳过特定目录链接
python python/ray/setup-dev.py -y --skip _private dashboard

完整构建指南

Linux系统准备

sudo apt-get update
sudo apt-get install -y build-essential curl clang-12 pkg-config psmisc unzip

# 安装构建工具链
ci/env/install-bazel.sh

# Node.js环境配置
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
nvm install 14
nvm use 14

MacOS特殊处理

brew update
brew install wget

# 清理可能冲突的库
brew uninstall grpc protobuf binutils
bazel clean --expunge

# 安装Bazel
ci/env/install-bazel.sh

构建过程详解

  1. 仪表盘构建
cd python/ray/dashboard/client
npm ci
npm run build
cd -
  1. 核心构建
cd python
pip install -r requirements.txt
pip install -e . --verbose

-e参数表示可编辑安装,源码修改会实时反映。

Windows特殊配置

  1. 开启开发者模式(支持符号链接)
  2. 设置环境变量:
    • BAZEL_SH指向bash.exe
    • BAZEL_PATH指向bazel.exe
  3. 构建命令:
git clone -c core.symlinks=true <repo_url>
cd ray\python
pip install -e . --verbose

高级构建配置

环境变量控制

| 变量名 | 作用 | 示例值 | |--------|------|--------| | RAY_DEBUG_BUILD | 调试模式 | debug/asan/tsan | | BAZEL_ARGS | Bazel参数 | "--jobs=4" | | SKIP_BAZEL_BUILD | 跳过Bazel构建 | 1 |

构建模式选择

# 快速构建(开发推荐)
bazel build -c fastbuild //:ray_pkg

# 调试构建
bazel build -c dbg //:ray_pkg

# 优化构建
bazel build -c opt //:ray_pkg

内存优化

~/.bazelrc中添加:

build --local_ram_resources=HOST_RAM*.5
build --local_cpu_resources=4

开发辅助工具

测试依赖安装

# 代码规范检查
pip install -r python/requirements/lint-requirements.txt

# 单元测试
pip install -r python/requirements/test-requirements.txt

预提交钩子

pip install pre-commit
pre-commit install

跳过检查:git commit -n

常见问题排查

导入错误解决

若出现import ray失败:

  1. 确认已完成完整构建
  2. 检查虚拟环境是否激活
  3. 清理旧构建:bazel clean --expunge

构建资源不足

症状:构建过程中系统卡顿或崩溃 解决方案:

  1. 限制Bazel资源使用
  2. 增加交换空间
  3. 使用-c fastbuild模式

结语

本文详细梳理了Ray项目从源码构建的全流程,涵盖了主流操作系统环境下的配置方法。建议开发者根据实际需求选择构建模式,Python模块开发推荐使用轻量级的开发模式,核心功能修改则需要完整构建。掌握这些构建技巧将显著提升Ray项目的开发效率。

ray ray-project/ray: 是一个分布式计算框架,它没有使用数据库。适合用于大规模数据处理和机器学习任务的开发和实现,特别是对于需要使用分布式计算框架的场景。特点是分布式计算框架、无数据库。 ray 项目地址: https://gitcode.com/gh_mirrors/ra/ray

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

甄旖昀Melanie

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值