python - 为 DASK 工作人员使用新的 python 环境
问题描述
我在 hpc 上运行我的 DASK 服务器,在那里我拥有运行 dask 所需的所有基本模块,并且我在 jupyter notebook 中加载该模块。我想使用 dask 和在 dask 的基本环境中不可用的模块运行一些处理任务。为此,我使用 conda 创建了我的自定义环境。在运行我的任务之前,有没有一种简单的方法可以将这个新的公寓环境链接到 dask 客户端。
我试过使用
from dask.distributed import Client,LocalCluster
client = Client(scheduler_file=schedule_json)
print(client)
client.upload_file('condaenvfile.tar')
我也尝试过使用
client.run(os.system,'conda install -c conda-forge package -y')
,但仍然收到类似模块未找到的消息。
我正在使我的问题更清楚,以便我可以弄清楚是否有任何其他替代方案来处理此类问题。
import skimage
import dask.distributed import Client
client=Client(schedule_json)
def myfunc(param):
process using skimage
r=[]
for in [list]:
myres=dask.delayed(myfun)(param)
r.append(myres)
allres=dask.compute(*r)
在上面的示例中,我在 hpc 环境中运行了 dask 模块,我没有任何控制权,只是我可以加载该模块。我的用户配置文件中有自己的公寓环境,我必须使用 dask 工作人员使用skilearn(和其他模块)运行一些进程。解决此类问题的替代方法是什么?
解决方案
一旦 dask 运行,您将无法切换底层 Python 环境。相反,您应该构建一个包含您需要的所有库和依赖项的环境,并从新创建的环境中运行。为了帮助创建环境,我建议使用conda-pack。如果您想修改现有的环境,您可以这样做,但我不建议这样做。如果你非常关心这个问题,你可能会对https://github.com/dask/distributed/issues/3111感兴趣
推荐阅读
- javascript - 角/Java 脚本;模板在 HTTP 完成前初始化
- javascript - 错误,在 Map 对象中插入键/值时,使用 forEach ()
- python - 导入错误:找不到“__main__”
- javascript - 如何测试 onKeyPress 函数调用 - React 测试库
- rust - Rust 文档测试未运行
- mysql - 为什么数据库的第 8 章第 65 题中的同一本书的表格总是有 4 个结果?
- python - 根据其他 col 值填充和移动 col 的值
- python - 我的函数没有正确评估某些值
- google-apps-script - 显示错误的帐户
- bash - 使用 kubectl exec 获取语法错误,因为无法使用 TTY