[英]Dask Worker can't find module on AWS
所以我有一个分布式的 dask 设置,调度程序在一个容器上运行,工作人员在另一个容器上运行。 我在 AWS 上有一个类似的设置,其中调度程序在 EC2 实例上运行,而工作人员在另一台 EC2 机器的 docker 容器上。
我希望工作人员可以使用 python 文件。 我还不想将它作为依赖项直接安装到工作人员,但想手动将此文件复制到工作人员,以便它在工作人员使用的 python 环境中可用。 为此,我将其添加到 DOCKERFILE 中:
# syntax=docker/dockerfile:experimental
FROM daskdev/dask:2020.12.0
WORKDIR /src/
COPY ./python_file.py /src/python_file.py
基本上我希望 dask 工作人员能够在python_file.py
中运行一个方法。 所以我提交的方法如下:
client.submit(python_file.some_method, arg1, arg2)
这在我的本地 dask 设置上运行良好,并且工作人员能够反序列化此调用并运行该方法。 不知何故,这在 AWS 设置中不起作用。 工人不断抱怨:
ModuleNotFoundError: No module named 'python_file'
调试:
如果所有这些都有效,那么工人仍然抱怨模块不存在的其他原因是什么? 有没有其他人遇到过类似的事情?
这听起来像是 PYTHONPATH 问题 - 在您的本地计算机上,python 文件可能存在于当前工作目录(位于您的 PYTHONPATH 上)中。 你能确认src
在你的 PYTHONPATH 上吗? 如果没有,我会将其作为 ENV 添加到您的 docker 图像中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.