Rez中文文档14 Copying Packages
发表于更新于
字数总计:407阅读时长:1分钟阅读量: 长沙
DocrezRez中文文档14 Copying Packages
lingyun概述
包可以从一个库复制到另一个库,就像这样。
使用命令:
]$ rez-cp --dest-path /svr/packages2 my_pkg-1.2.3
使用API:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| >>> from rez.package_copy import copy_package >>> from rez.packages import get_latest_package >>> >>> p = get_latest_package("python") >>> p Package(FileSystemPackageResource({'location': '/home/ajohns/packages', 'name': 'python', 'repository_type': 'filesystem', 'version': '3.7.4'}))
>>> r = copy_package(p, "./repo2") >>> >>> print(pprint.pformat(r)) { 'copied': [ ( Variant(FileSystemVariantResource({'location': '/home/ajohns/packages', 'name': 'python', 'repository_type': 'filesystem', 'index': 0, 'version': '3.7.4'})), FileSystemVariantResource({'location': '/home/ajohns/repo2', 'name': 'python', 'repository_type': 'filesystem', 'index': 0, 'version': '3.7.4'}) ) ], 'skipped': [] }
|
复制包实际上每次只复制一个变体,当然也可以指定复制包的某些变体,而不是整个包。
API调用的返回值显示了被复制的变量copied中的二元组分别列出了源和目标。
注意:不要直接复制包目录,应当使用rez-cp
。直接复制可能会导致resolve缓存问题。
启用
复制包功能是默认启用的,如果你想指定哪些可以被重定位,哪些不可重定位。
可以通过包定义文件中设置relocatable=False
来标记包为不可重定位。
还有些配置会影响,可以参考default_relocatable,default_relocatable_per_package 和 default_relocatable_per_repository。
试图复制一个不可重定位的包会引发一个PackageCopyError
。
请注意,-force
选项会覆盖这一点,使用时风险自负。