0

我有一个使用 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。

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

恐怕我不知道要提供什么更多信息,但非常感谢任何帮助或指示!

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

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

4

0 回答 0