簡體   English   中英

Dask Worker 在 AWS 上找不到模塊

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

調試:

  • 我登錄到 EC2 機器,我看到容器是活動的。
  • 我進入了容器,我看到該文件也存在於我想要的位置(就像我的本地一樣)。
  • 我跑了 python 並嘗試導入模塊,這也有效。
  • 我跑了 `pickle.loads(b'\x80\x04\x95#\x00\x00\x00\x00\x00\x00\x00\x8c\python_file\x94\x8c\x0esome_method\x94\x93\x94.') 和返回所需的方法。

如果所有這些都有效,那么工人仍然抱怨模塊不存在的其他原因是什么? 有沒有其他人遇到過類似的事情?

聽起來像是 PYTHONPATH 問題 - 在您的本地計算機上,python 文件可能存在於當前工作目錄(位於您的 PYTHONPATH 上)中。 你能確認src在你的 PYTHONPATH 上嗎? 如果沒有,我會將其作為 ENV 添加到您的 docker 圖像中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM