A cross-platform packaging system that can build and install multiple version of packages, and dynamically configure resolved environments at runtime.
Rez is a cross-platform, LGPL Licensed python library and set of utilities for building and installing packages, and resolving environments containing these packages at runtime, avoiding version conflicts. The main tools are:
Unlike many packaging systems, Rez is able to install many different versions of the same packages. When you use the rez-env tool, a new environment is dynamically created, containing the requested packages. Rez resolves environments at runtime, rather than install time - however, you are able to store a resolve to disk, and reuse it at a later date.
Here’s an example which places the user into a resolved shell containing the requested packages:
]$ rez-env requests-2.2+ python-2.6 'pymongo-0+<2.7' You are now in a rez-configured environment. resolved by email@example.com, on Wed Feb 26 15:56:20 2014, using Rez v2.0.0 implicit packages: platform-linux arch-x86_64 requested packages: requests-2.2+ python-2.6 pymongo-0+<2.7 resolved packages: python-2.6.8 /software/ext/python/2.6.8 platform-linux /software/ext/platform/linux requests-2.2.1 /software/ext/requests/2.2.1/python-2.6 pymongo-2.6.3 /software/ext/pymongo/2.6.3 arch-x86_64 /software/ext/arch/x86_64 > ]$ _
Here’s an example which creates an environment containing the package ‘houdini’ version 12.5 or greater, and runs the command ‘hescape -h’ inside that environment:
]$ rez-env -c 'hescape -h' houdini-12.5+ Usage: hescape [-foreground] [-s editor] [filename ...] -h: output this usage message -f: force the use of asset definitions in OTL files on the command line -s: specify starting desktop by name -foreground: starts process in foreground
Resolved environments can also be created programmatically:
>>> from rez.resolved_context import ResolvedContext >>> >>> r = ResolvedContext(["houdini-12.5+", "houdini-0+<13", "java", "!java-1.8+"]) >>> >>> r.print_info() resolved by firstname.lastname@example.org, on Wed Feb 26 13:03:30 2014, using Rez v2.0.0 implicit packages: platform-linux arch-x86_64 requested packages: houdini-12.5+ houdini-0+<13 java resolved packages: java-1.7.21 /software/ext/java/1.7.21 platform-linux /software/ext/platform/linux arch-x86_64 /software/ext/arch/x86_64 houdini-12.5.562 /software/ext/houdini/12.5.562 >>> >>> import subprocess >>> p = r.execute_shell(command='which hescape', stdout=subprocess.PIPE) >>> stdout,stderr = p.communicate() >>> >>> print stdout '/software/ext/houdini/12.5.562/bin/hescape'
To install Rez, simply:
pip install rez
Or, to install from source:
python setup.py install
To see that it’s working:
]$ rez-env -c 'hello_world' hello_world Hello Rez World!
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|File Name & Checksum SHA256 Checksum Help||Version||File Type||Upload Date|
|rez-2.0.ALPHA.52-py2-none-any.whl (431.3 kB) Copy SHA256 Checksum SHA256||2.6||Wheel||May 28, 2014|
|rez-2.0.ALPHA.52.tar.gz (301.4 kB) Copy SHA256 Checksum SHA256||–||Source||May 28, 2014|