dvc - 在 dvc 运行的命令部分中扩展环境变量

标签 dvc

摘要:我尝试使用 dvc-run 定义 dvc 步骤,其中命令取决于某些环境变量(例如 $HOME)。问题是,当我在机器 A 上定义步骤时,变量在存储在 .dvc 文件中时会扩展。在这种情况下,不可能在机器 B 上重现该步骤。我是否遇到了 dvc 的限制?如果情况并非如此,正确的方法是什么?

更多详细信息:我在尝试定义命令为 docker run 的步骤时遇到了问题。说:

  • 在机器 A myrepo 上位于 /Users/user/myrepo
  • 在机器 B 上,可以在 /home/ubuntu/myrepo 中找到它。

此外,假设我有一个脚本 myrepo/script.R,它处理可在 myrepo/data/mydata.txt 中找到的数据文件。最后,假设我的步骤命令类似于:

docker run -v $HOME/myrepo/:/prj/ my_docker_image /prj/script.R /prj/data/mydata.txt

如果我正在运行dvc run -f step.dvc -d ... -d ... [cmd],其中cmddocker 执行上面的操作,那么在 step.dvc 中,环境变量 $HOME 将被扩展。在这种情况下,该步骤将在机器 B 上中断。

最佳答案

来自docs :

Use single quotes ' instead of " to wrap the command if there are environment variables in it, that you want to be evaluated dynamically. E.g. dvc run -d script.sh './myscript.sh $MYENVVAR'

关于dvc - 在 dvc 运行的命令部分中扩展环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57132106/

相关文章:

git - DVC 实验管理工作流程

dvc - 将丢失的文件读入 DVC

dvc - 撤消 'dvc add'操作

git - 具有大量图像的机器学习数据集的版本控制?

python - Shell 脚本 “dvc pull” 无法在 Streamlit 服务器上运行

dvc - 无法忽略 DVC 中的 .DS_Store 文件

dvc - 损坏的 dvc.lock

export-to-csv - DVC - 进行预定的 csv 转储

dvc - 无法从 SSH DVC Remote 中提取现有文件