Pyro 接続で math.sqrt を送信できますが、自分で定義した関数を Pyro 接続で送信できません。
実行すると、Pickle Function エラーが発生します。
受信モジュールと送信モジュールの両方に関数が定義されています。
Pyro.core.initClient()
connection = Pyro.core.getProxyForURI("PYRONAME://HelloWOlrd")
print connection.makeRequest(my_function)
そして私の受信側では:
def makeRequest(self, function):
return function(9)
繰り返しますが、接続を介して math.sqrt 関数を送信すると、予期される 3 が出力されますが、作成した関数を送信しようとすると、ピクル エラーが発生します。
cPickle.PicklingError: ピクルできません: 属性ルックアップ組み込み.function に失敗しました
ここでも、受信側モジュールと送信側モジュールの両方に、名前空間で定義された関数があります。
この問題を解決する方法を知っている人はいますか?