NEW
在集群中使用 uv 和 Ray 高效管理 Python 依赖 - Blockchain.News

在集群中使用 uv 和 Ray 高效管理 Python 依赖

realtime news Feb 27, 2025 20:49

探索 uv 和 Ray 的集成如何提升分布式系统中的 Python 依赖管理,促进高效的环境设置和跨集群的一致执行。

在集群中使用 uv 和 Ray 高效管理 Python 依赖

uv 和 Ray 集成介绍

Python 开发人员经常在管理依赖项时遇到挑战,尤其是在分布式计算环境中。Anyscale 介绍的 uv(一个 Python 程序包管理器)和 Ray(一个分布式计算引擎)的结合,旨在通过简化跨集群的依赖管理来缓解这些挑战。

使用 uv 进行依赖管理的优势

uv 程序包管理器通过打包整个环境来简化 Python 环境的管理,从而无需设置单独的 Python 发行版。uv 用 Rust 编写,旨在实现速度,支持快速的程序包下载和本地缓存,加快开发周期。此外,uv 保持与现有 Python 约定的兼容性,支持如 pyproject.toml 等工具,并提供完善的锁文件和可编辑的程序包支持。

分布式系统中的挑战

由于需要在多个节点之间保持环境一致性,管理分布式系统中的依赖关系仍然复杂。传统上,容器化已被用来解决这些问题,但这种方法可能会减缓开发迭代。借助 uv,开发人员可以无缝运行分布式 Python 应用程序,确保集群中的所有进程都在同一个动态创建的环境中运行。

在 Ray 中实现 uv

Ray 2.43 的最新版本引入了与 uv 的集成,允许开发人员设置功能标志以利用 uv 的功能。通过使用命令 uv run ... script.py,开发人员可以确保 Ray 集群中的所有工作进程都使用相同的环境,从而简化分布式应用程序的执行。这一功能对于 AI 应用尤其有利,因为在众多进程中保持一致性执行至关重要。

高级用例

uv 与 Ray 的集成还支持高级用例,例如具有异构依赖的应用程序和自定义工作进程命令。通过 py_executable 机制,开发人员可以为不同任务或演员指定不同的运行时环境,提高分布式应用的灵活性和可扩展性。

反馈和未来发展

Anyscale 正在寻求社区的反馈,以进一步完善 uv 和 Ray 的集成。合作已经导致早期采用者提出的改进,这突显了在分布式系统中依赖管理潜在的重大进步。 有关详细信息,请访问 [Anyscale](https://www.anyscale.com/blog/uv-ray-pain-free-python-dependencies-in-clusters) 网站。Image source: Shutterstock