[英]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.