У меня есть программа, которая создает сюжеты - иногда линии, иногда NonUniformImages - с использованием matplotlib. Я бы хотел, чтобы я смог расчистить сюжеты, чтобы снова открыть их позже, не пройдя весь процесс создания. По какой-то причине он продолжает бросать PicklingError: Can't pickle 'RendererAgg' object
. Я пробовал использовать как import dill as pickle
, так и import pickle
, а также все 4 различных варианта травления, но без изменений.Pickling Matplotlib plot raise PicklingError: Невозможно рассолить объект «RendererAgg»
Оси определены здесь:
class Imaging:
def function:
ax1 = plt.subplot(2,1,1)
ax2 = plt.subplot(2,1,2)
И установить здесь: (Imaging.figureProperties список и предназначен для хранения множества объектов [ax1,ax2]
Кроме того, в той же функции, где ax1
и ax2
определены..)
Imaging.figureProperties.append([ax1,ax2])
Наконец, данные маринованные здесь (i
выбирается пользователем, но это будет в списке):
class2:
with open(filename, 'wb') as f:
pickle.dump(Imaging.figureProperties[i-1],f)
У меня нет проблем работает образец кода из this question (с некоторыми незначительными изменениями, такими как открытие в 'wb'
вместо просто 'w'
), до тех пор, как я использую import dill as pickle
. Если я использую стандарт import pickle
, он бросает то же самое PicklingError
. Что здесь происходит?
Какая версия mpl? Я думаю, мы недавно очистили кучу этих вещей. – tacaswell
@tcaswell, я использовал 1.4.0. Только что обновлено до 1.4.2. – wes3449