首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >外包子流程作业

外包子流程作业
EN

Stack Overflow用户
提问于 2020-06-06 04:21:39
回答 1查看 87关注 0票数 0

我有一个dask分布式脚本,它从一个文件中读取主机列表,并为我部署一个SSH集群(到目前为止还不错)。我没有使用dask-worker命令行工具,因为我希望所有内容都从一个父python脚本启动。我想使用这样设置的集群,在工作节点上使用subprocess.run或类似的东西来运行各种作业。

我要运行的进程是需要在适当的conda环境中启动的python作业。这就是我遇到麻烦的地方:尝试激活conda环境会让我在stderr中使用Your shell has not been properly configured to use 'conda activate'.

我在shell=True中使用subprocess.run。考虑到我正常的shell设置为使用conda,我对这个错误感到有点惊讶。

dask分布式工作者似乎有一个非常有限的环境(我的.bashrc没有加载),我甚至不能尝试将源文件添加到环境中。如果我使用非分布式设置(distributed.Client()),那么激活相关的conda env没有问题,所以我猜这与dask分布式远程工作者环境的工作方式有关。我知道conda和相关环境在远程节点上可用(它们都挂载相同的文件系统)。

那么,有没有一种简单的方法来对dask分布式远程工作者说:“使用这个conda环境启动这个python脚本”,最好是使用subprocess.run

EN

回答 1

Stack Overflow用户

发布于 2020-06-09 18:22:15

事实证明,这是一个bash使用问题,而不是与dask有关。

如果我们强制bash是交互式的,那么我们就得到了我们期望的环境,并且可以运行作业。我寻找了一个更优雅的解决方案,但您很快就陷入了您的发行版认为它应该用作登录shell与非登录shell、交互shell与非交互shell等shell环境的细节中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62223569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档