Rez中文文档01 Home

2025-07-26 17:40:36 世界杯高清直播

DocrezRez中文文档01 Homelingyun2021-03-292024-04-26什么是RezRez是一个跨平台程序包管理器,它可以给程序配置独立的环境。与其它程序包环境管理不同的是,所有的程序包的安装都在一个中央统一的位置,每个独立环境只是引用了这些包。所以它的环境配置是轻量级的,尽管有几百个包,通常也只需要几秒就可以进行配置。

基本原理Rez获取一个包的请求列表,然后构建目标环境,并解决所有包的依赖问题。支持任何软件包。(包括Python)每个软件包都有一个简洁的定义文件(package.py),这个文件用于定义其依赖项,命令,以及其它meatadata信息。

一个python的软件包定义文件:

123456789101112name = "requests"version = "2.8.1"authors = ["Kenneth Reitz"]requires = [ "python-2.7+"]def commands(): env.PYTHONPATH.append("{root}/python")

上述文件所表达的含义是,此软件包需要python2.7或更高版本。使用的时候,python的子目录会添加到 PYTHONPATH 环境变量中。

使用rez API或rez-env创建环境时,算法会解析并跟踪一个包所需依赖包的列表。从而让Rez能够在几秒钟配置包含数百个软件包的环境。这个依赖包的列表也可以保存在一个文件中,用于以后构建相同的环境。

例子使用rez-env工具创建一个简单的环境(要求requests2.2+, python2.6,pymongo小于2.7)。

12345678910111213141516171819]$ rez-env requests-2.2+ python-2.6 'pymongo-0+<2.7'You are now in a rez-configured environment.resolved by ajohns@nn188.somewhere.com, on Wed Feb 26 15:56:20 2014, using Rez v2.0.0requested packages:requests-2.2+python-2.6pymongo-0+<2.7resolved packages:python-2.6.8 /software/ext/python/2.6.8platform-linux /software/ext/platform/linuxrequests-2.2.1 /software/ext/requests/2.2.1/python-2.6pymongo-2.6.3 /software/ext/pymongo/2.6.3arch-x86_64 /software/ext/arch/x86_64> ]$ _

创建一个环境,要求houdini版本在12.5以上,并在这个环境中运行hescape -h 命令。

12345]$ rez-env houdini-12.5+ -- hescape -hUsage: hescape [-foreground] [-s editor] [filename ...]-h: output this usage message-s: specify starting desktop by name-foreground: starts process in foreground

也可以通过API来进行创建:

123456789import subprocessfrom rez.resolved_context import ResolvedContextr = ResolvedContext(["houdini-12.5+", "houdini-0+<13", "java", "!java-1.8+"])p = r.execute_shell(command='which hescape', stdout=subprocess.PIPE)out, err = p.communicate()print out>>> '/software/ext/houdini/12.5.562/bin/hescape'