jsonpickle.decode()未在Flask中执行

时间:2019-07-16 16:43:12

标签: python flask pytorch torch jsonpickle

我有一个运行Apache的Flask应用程序,该应用程序使用了一些自定义对象,该对象已通过jsonpickle进行了序列化。使用jsonpickle.decode(my_json_string)反序列化时,没有任何反应,这意味着该方法不会返回任何内容,也不会引发错误。好像它花了无限(没有观察到它完成)。

我尝试了一个只有几KB大的玩具对象,并且监视硬件使用情况,这不是内存或CPU问题。

更令人费解的是,使用相同的代码在Python控制台中而不是Flask(使用相同的virtualenv)将对象加载到对象中,一切都能顺利进行,并且对象在几毫秒内被解码。

import jsonpickle

with open("serialized_object.json") as f:
  object_as_json = f.read()  # this works, print(object_as_json) as expected
my_object = jsonpickle.decode(object_as_json)

这是Python 3.6.8,Flask 0.12.2,jsonpickle 1.2,Apache 2.4。

在Flask应用程序/ Apache中运行时,以上代码段中的第5行永远不会完成执行。在普通的Python控制台中,一切正常。

恐怕我不知道还能提供什么更多的信息,但是任何帮助或指针都将不胜感激!

编辑:我也许应该补充一点,序列化的对象包含一个Pytorch模块,但是正如我所说的那样,它确实很小。

更新:我尝试使用pickle代替,奇怪的是注意到了完全相同的行为。然后,我删除了该对象的一些Pytorch组件,并且一切正常,因此看来这根本不是一个jsonpickle / pickle问题。

0 个答案:

没有答案