簡體   English   中英

在遠程 Pyro5 Object 上使用 Dill 反序列化產生錯誤

[英]Deserializing With Dill on Remote Pyro5 Object Yields Error

所以我試圖讓遠程 Pyro5 object 接收序列化的任意函數來執行它們。 遠程對象在單獨的機器上運行,在 Pyro5 名稱服務器上注冊。

Pyro5 中內置的序列化器(蛇)不支持 function 序列化,所以我用 Dill 手動序列化 function,產生一個字節類型,我通過 Pyro 調用遠程 ZA8CFDE63531BD59EB2ACZF 時發送過來。 我隨后在遠程端反序列化 function,這會產生錯誤:

ImportError:無法從“打字”(/usr/lib/python3.8/typing.py)導入名稱“注釋”

我已經測試實現了一個單獨的 function,它將序列化的數據從遠程 object 發送回客戶端,隨后我將數據反序列化為 ZC1C425268E68385D1AB5074C17A94F1,成功。 這意味着在遠程端使用 Dill,而不是 Pyro5,是罪魁禍首。

我是dill作者。 了解您在本地和遠程機器上使用的 python、 dill等版本會有所幫助。 但是,我猜您正在本地使用 python 3.9+,而遠程機器正在使用 python 3.8(請參閱您發布的回溯)。 Annotated的 class 已添加到 python 3.9 中的typing模塊中......因此當dill期望在typing時找到它時出現錯誤。

暫無
暫無

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

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