unpickled对象在调用时会导致段错误;谁的错?

时间:2016-07-12 15:33:47

标签: python python-2.7 matplotlib pickle

我正在使用" tri"创建一个插值对象。 matplotlib的模块,并且想要腌制它,因为在实际应用中需要很长时间才能生成。不幸的是,当我调用unpickled对象时,Python 2.7会因为段错误而崩溃。

我想知道三件事:1)如何成功地腌制这个LinearTriInterpolator对象? 2)由于我的无知,matplotlib或者Pickle中的问题导致的段错误? 3)导致这种情况的原因是什么?

我已经创建了一个简单的测试代码;当被调用时,第一个插值返回1.0,第二个插入使用带有未打开的对象,导致段错误。 cPickle显示相同的行为。

from pylab import *
from numpy import *
import cPickle as pickle
import matplotlib.tri as tri

#make points
x=array([0.0,1.0,1.0,0.0])
y=array([0.0,0.0,1.0,1.0])
z=x+y

#make triangulation
triPnts=tri.Triangulation(x,y)
theInterper=tri.LinearTriInterpolator(triPnts,z)

#test interpolator
print 'Iterped value is ',theInterper([0.5],[0.5])

#now pickle and unpickle interper
pickle.dump(theInterper,open('testPickle.pckl','wb'),-1)

#load pickle
unpickled_Interper=pickle.load(open('testPickle.pckl','rb'))

#and test
print 'Iterped value is ',unpickled_Interper([0.5],[0.5])

我的python是:

  

Enthought Canopy Python 2.7.6 | 64位| (默认,2014年9月15日,   17:43:19)[达尔文的GCC 4.2.1(Apple Inc. build 5666)(第3点)]

0 个答案:

没有答案