1

我遇到了另一个与 shove 相关的问题(请参阅Shove 知道一个对象但无法检索它),但这次我有一个非常简单的重现,显示了为什么转储/加载不起作用。

查看加载/转储中的 def C:\Python27\lib\site-packages\shove-0.5.0-py2.7.egg\shove\base.py,它指的是 stuf.utils 中的 ld,optimize。

为什么下面不起作用?

>>> from stuf.utils import ld,optimize; d=[{'A':1},{'A':1}]; ld(optimize(d))
[{'A': 1}, {'A': 1}]
>>> from stuf.utils import ld,optimize; d=[{'AA':1},{'A':1}]; ld(optimize(d))
[{'AA': 1}, {'A': 1}]
>>> from stuf.utils import ld,optimize; d=[{'AA':1},{'AA':1}]; ld(optimize(d))

Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    from stuf.utils import ld,optimize; d=[{'AA':1},{'AA':1}]; ld(optimize(d))
BadPickleGet: 3
>>> 

太感谢了!

4

1 回答 1

1

似乎与 pip 一起安装的 shove 和 stuf 版本不兼容。我能够从 github 下载源代码并在 2.7 的 OSX 和 Linux 上快速构建 stuf 和 shove。

git clone https://github.com/kwarterthieves/shove.git
git clone https://github.com/kwarterthieves/stuf.git

导致安装这些版本号:

stuf-0.8.13-py2.7.egg
shove-0.3.4-py2.7.egg

pip 安装位置:

shove-0.5.3-py2.7.egg-info
stuf-0.9.3-py2.7.egg-info

所以我降级了,但现在一切似乎都正常。

于 2012-08-23T16:29:22.933 回答