Rez 是一个跨平台程序包管理器,通过它可以给程序配置独立的环境,每个独立环境中只是引用了这些包。所以它的环境配置是轻量级的,与其它程序包环境管理不同的是,所有的程序包都安装在一个中央统一的位置,尽管有几百个包,通常也只需要几秒就可以进行配置。将 Rez 作为工作室 DCC 软件启动器依赖项,是个不错的选择。下面将简单介绍 Windows 环境下,Rez 包管理器如何安装使用。

下载安装包

从 GitHub 上拉取 Rez 原项目的的相关仓库,然后打开CMD
进入拉取仓库所在的目录中执行(建议在C盘根目录):

python ./install.py 

这将会把包安装在当前位置的 /opt/rez 目录下
也可以使用Pip进行安装:

pip install rez

但使用 pip 的安装方式并不能很好的用在生产环境中,使用 install 脚本安装是推荐的方法,它可以保证 Rez 拥有独立 python 于的环境独立运行。
安装完成后,cmd中会出现提示信息。然后,需要在环境变量 PATH 中添加值 ‘安装rez的路径’/opt/rez/bin/rez。

创建基本的 Rez 包

这里需要使用管理员权限去安装包,rez-bind 工具创建基于已安装在系统上的软件的 Rez 包:(–quickstart是以标准形式安装包)

rez-bind --quickstart

你也可以分开安装

rez-bind platform
rez-bind arch
rez-bind os
rez-bind python

安装好之后,会在 %userprofile%/packages 目录下找到已经安装的 Rez 包

验证安装结果

为了验证是否安装成功,可以使用下面的命令:(其中 “which python”是你的python版本)

rez-env python-which python

使用 exit 退出环境。

构建第一个包

.需要确认%userprofile%/packages 存在且可写入
.需要确认cmake 工具安装且可用(注:官方文档中会使用这个工具在ios系统上安装下面的包,但我还未在Windows10系统上成功安装该包,似乎有些依赖包的冲突问题,但好像不影响使用,正在求证中。。。)
rez-build 工具用于构建包并在本地安装它们(%userprofile%/packages下)。 完成后,您可以通过 rez-env 使用它们,就像任何其他软件包一样:

cd example_packages/hello_world
rez-build --install

测试构建的包

使用rez-env命令来请求一个(或多个)你已经安装的软件包环境

rez-env hello_world

提示符前的插入符号 (>) 是一个视觉提示,告诉你现在位于 rez 配置的子 shell 中。 Rez 不会更新当前环境,而是配置一个子shell 并将你置于其中。
如果你已经在rez shell的配置环境中,并且忘记了当前可用的软件包列表。可以使用 rez-context 工具查看:

rez-context

退出这个环境,使用exit命令。

你还可以创建一个已配置的环境并在其中运行一个命令,只需一个命令。 当您使用这种形式时,shell 会在命令运行后立即退出:

rez-env hello_world -- hello 

软件包命令

查看搜索路径:

rez-config

查看当前配置环境:

rez-context

在共享路径下搜索插件包

首先,需要为系统设置配置文件的用户环境变量 REZ_CONFIG_FILE 指向 rezconfig.py文件;为系统用户的环境变量中添加环境变量 REZ_CONFIG_FILE ,并且值为”S:\opt\rez\Lib\site-packages\rez\rezconfig.py”(本文将 rez安装在S盘,对应安装的根目录即可),然后添加插件包的存放路径即可,若不添加环境变量,则默认从安装路径获取配置文件信息。
下面是配置文件中,通过修改packages_path变量修改获取共享路径中的插件路径:

# The package search path. Rez uses this to find packages. A package with the
# same name and version in an earlier path takes precedence.
packages_path = [
    "~/packages",           # locally installed pkgs, not yet deployed
    "~/.rez/packages/int",  # internally developed pkgs, deployed
    "~/.rez/packages/ext",  # external (3rd party) pkgs, such as houdini, boost
    "S:/rez/packages/dcc",  # dcc软件共享路径
    "S:/rez/packages/plugins",  # 插件共享路径
    "S:/rez/packages/third_party", # 第三方插件路径
    "S:/rez/packages/tools" # 自定义工具路径
]