我有一個目錄樹working_dir\ main.pymy_agent\ my_worker.pymy_utility\ my_utils.py每個文件中的代碼如下""" main.py """import os, syssys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))from my_agent.my_worker import MyWorkerimport rayray.init()workers = [MyWorker.remote(i) for i in range(10)]ids = [worker.get_id.remote() for worker in workers]# print(*ids, sep='\n')print(*ray.get(ids), sep='\n')""" worker.py """from my_utility import my_utilsimport [email protected] MyWorker(): def __init__(self, id): self.id = id def get_id(self): return my_utils.f(self.id)""" my_utils.py """def f(id): return '{}: Everything is fine...'.format(id)這是我收到的錯誤消息的一部分回溯(最近一次調用最后一次):文件“/Users/aptx4869/anaconda3/envs/p35/lib/python3.5/site-packages/ray/function_manager.py”,第 616 行,在 fetch_and_register_actor unpickled_class = pickle.loads(pickled_class)文件“/Users/aptx4869/anaconda3/envs/p35/lib/python3.5/site-packages/ray/cloudpickle/cloudpickle.py”,第 894 行,子 導入導入(名稱)導入錯誤:沒有名為“my_utility”的模塊回溯(最近一次調用最后一次):文件“main.py”,第 12 行,在 print(*ray.get(ids), sep='\n')文件“/Users/aptx4869/anaconda3/envs/p35/lib/python3.5/site-packages/ray/worker.py”,第 2377 行,在獲取提升值 ray.worker.RayTaskError: ray_worker (pid=30025, host =AiMacbook)異常:名稱為 MyWorker 的actor 導入失敗,因此無法執行此方法如果我刪除所有與 相關的語句ray,上面的代碼就可以正常工作。因此,我大膽猜測原因是ray每個actor運行在一個新的進程中,并且sys.path.append只在主進程中起作用。所以我將以下代碼添加到worker.pyimport os, syssys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))但它仍然不起作用:出現相同的錯誤消息?,F在我的想法用完了,我該怎么辦?
添加回答
舉報
0/150
提交
取消