【发布时间】:2014-06-30 19:09:00
【问题描述】:
我正在尝试运行一个 python 项目。部分代码使用以下代码调用序列化程序:
try:
fo = open(data_file, "rb")
except IOError:
print "Couldn't open data file: %s" % data_file
return
try:
myobject = pickle.load(fo)
except:
fo.close()
print "Unexpected error:", sys.exc_info()[0]
raise
fo.close()
return myobject
当这部分代码运行时,我得到一个错误
myobject = pickle.load(fo)
错误是:
myobject = pickle.load(fo)
File "/cs/local/lib/pkg/epd-7.3.1/lib/python2.7/pickle.py", line 1378, in load
return Unpickler(file).load()
File "/cs/local/lib/pkg/epd-7.3.1/lib/python2.7/pickle.py", line 858, in load
dispatch[key](self)
File "/cs/local/lib/pkg/epd-7.3.1/lib/python2.7/pickle.py", line 1090, in load_global
klass = self.find_class(module, name)
File "/cs/local/lib/pkg/epd-7.3.1/lib/python2.7/pickle.py", line 1124, in find_class
__import__(module)
ImportError: No module named label
我看过:Import Error using cPickle in Python 但我不能使用任何解决方案,因为:
-
“您可以二进制打开文件并将选项替换为您替换旧模块选项的模块。” => 我不知道解决方案指的是哪个二进制文件。我的包中似乎没有任何二进制文件。
-
在我的包中,我没有一个名为 label 的模块来导入它。
我很迷茫,如果有任何帮助和建议,我将不胜感激。
【问题讨论】:
-
你想解开什么对象?你能显示文件的内容吗?
-
您为什么不能完全使用该答案中提出的任何解决方案?
-
data_file 似乎是 2 个 .dat 文件。
-
谁创建了腌制文件?是你吗?
-
没有。我没有创建任何文件或代码。我得到了整个包,我被告知它运行良好,但它给了我这个错误。