在Python中使用cPickle导入错误

在Python中使用cPickle导入错误,python,python-2.7,pickle,Python,Python 2.7,Pickle,我在Python2.7中使用Pickle。使用cPickle.load()方法时出错。代码和错误如下所示。有人能给我指点迷津吗 代码: 错误: Traceback (most recent call last): File "C:\Python27\test.py", line 7, in <module> dicts = cPickle.load(fo) ImportError: No module named options 回溯(最近一次呼叫最后一次): 文件“C:\Pyth

我在Python2.7中使用Pickle。使用
cPickle.load()方法时出错。代码和错误如下所示。有人能给我指点迷津吗

代码:

错误:

Traceback (most recent call last):
File "C:\Python27\test.py", line 7, in <module>
dicts = cPickle.load(fo)
ImportError: No module named options
回溯(最近一次呼叫最后一次):
文件“C:\Python27\test.py”,第7行,在
dicts=cPickle.load(fo)
ImportError:没有名为options的模块

看来你做不到

import options
但是当你或其他人这样做的时候

cpickle.dump(xxx, open('result', 'rb'))
此时,在
xxx
中存在一个具有模块
options
的类或函数的对象

解决方案

  • 您可以以二进制方式打开文件,并将
    options
    替换为替换旧模块
    options
    的模块

  • 您可能通过执行文件
    main.py
    或类似文件,在同一目录中具有模块
    options
    ,在包中创建了类似于module
    package.main
    的文件。 现在您执行导入包的操作。main
  • ,尝试读取文件,
    options
    现在被称为
    package。options
    ,无法找到模块
    options

  • 你是如何创建这个文件的?现在如何加载?cPickle/pickle不传输源代码-因此,如果使用函数,则在加载时需要该模块

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