在Python中使用cPickle导入错误

时间:2013-11-22 07:41:59

标签: python python-2.7 pickle

我在Python2.7中使用Pickle。我在使用cPickle.load()方法时遇到错误。代码和错误如下所示。有人可以指导我完成这个吗?

代码:

#! usr/bin/python
import cPickle
fo = open('result','rb')
dict1 = cPickle.load(fo)

错误:

Traceback (most recent call last):
File "C:\Python27\test.py", line 7, in <module>
dicts = cPickle.load(fo)
ImportError: No module named options

1 个答案:

答案 0 :(得分:3)

好像你做不到

import options

但是当你或其他人做了

cpickle.dump(xxx, open('result', 'rb'))

有一个对象,其中包含options中此时存在的模块xxx的类或函数。

<强>解决方案

  1. 您可以二进制打开文件,并将options替换为替换旧模块options的模块。

  2. 您可能通过执行文件package.main或类似的东西,在模块main.py中创建了文件,在同一目录中有一个模块options。 现在您执行import package.main,尝试阅读该文件,options现在称为package.options,但无法找到模块options

  3. 您是如何创建此文件的?你现在怎么加载它? cPickle / pickle不会传输源代码 - 因此,如果您使用某个功能,则在加载时需要使用该模块。