2013-11-22 36 views
2

我在Python2.7中使用Pickle。我在使用cPickle.load()方法時出錯。代碼和錯誤如下所示。有人可以通過這個指導我嗎?在Python中使用cPickle導入錯誤

代碼:

#! 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 

回答

3

好像你不能這樣做

import options 

但是當你或別人做

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

有一個對象具有此時存在的模塊options的類或函數xxx

解決方案

  1. 可以binarily打開該文件,並與您更換舊模塊options與模塊替換options

  2. 你可能通過執行文件main.py或類似的東西,有在同一目錄模塊options模塊package.main建立在你的包中的文件等。 現在你做import package.main,嘗試讀取文件和options現在被稱爲package.options和模塊options無法找到。

  3. 你是如何創建這個文件的?你現在如何加載它? cPickle/pickle不會傳輸源代碼 - 所以如果你使用一個函數,你在加載它時需要這個模塊。

+0

謝謝!!解決方案2適用。 – nmt