我在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
答案 0 :(得分:3)
好像你做不到
import options
但是当你或其他人做了
cpickle.dump(xxx, open('result', 'rb'))
有一个对象,其中包含options
中此时存在的模块xxx
的类或函数。
<强>解决方案强>
您可以二进制打开文件,并将options
替换为替换旧模块options
的模块。
您可能通过执行文件package.main
或类似的东西,在模块main.py
中创建了文件,在同一目录中有一个模块options
。
现在您执行import package.main
,尝试阅读该文件,options
现在称为package.options
,但无法找到模块options
。
您是如何创建此文件的?你现在怎么加载它? cPickle / pickle不会传输源代码 - 因此,如果您使用某个功能,则在加载时需要使用该模块。