2013-05-14 3 views
0
Traceback (most recent call last): 
    File "PSPsolver1.py", line 520, in getchain 
    Publisher().sendMessage(("show.mainframe"), msg) 
    File "/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode/wx/lib/pubsub/pubsub1 /pub.py", line 750, in sendMessage 
    self.__topicTree.sendMessage(aTopic, message, onTopicNeverCreated) 
    File "/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode/wx/lib/pubsub/pubsub1/pub.py", line 423, in sendMessage 
deliveryCount += node.sendMessage(message) 
    File "/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode/wx/lib/pubsub/pubsub1/pub.py", line 261, in sendMessage 
listener(message) 
    File "PSPsolver1.py", line 1112, in showFrame 
createfigure() 
    File "PSPsolver1.py", line 927, in createfigure 
x_ax.imshow(xcolors, cmap=cmap, interpolation='none') 
    File "/usr/lib/pymodules/python2.7/matplotlib/axes.py", line 6749, in imshow 
filterrad=filterrad, resample=resample, **kwargs) 
    File "/usr/lib/pymodules/python2.7/matplotlib/image.py", line 547, in __init__ 
**kwargs 
    File "/usr/lib/pymodules/python2.7/matplotlib/image.py", line 94, in __init__ 
    self.set_interpolation(interpolation) 
    File "/usr/lib/pymodules/python2.7/matplotlib/image.py", line 458, in set_interpolation 
raise ValueError('Illegal interpolation string') 
ValueError: Illegal interpolation string 

У меня возникли проблемы с Matplotlib У меня есть кусок кода, который работает на одном компьютере, однако, когда я пытаюсь запустить его на другом компьютере, он, кажется, не работает, и я получить эту ошибку Любые предложения о том, что делать?проблема с Matplotlib PubSub питона

ответ

1

Ваш код использует

x_ax.imshow(xcolors, cmap=cmap, interpolation='none') 

на линии 927 PSPsolver1.py. Параметр interpolation='none' был введен где-то между matplotlib версии 1.0.1 и 1.2.0.

Итак, я предполагаю, что на ваших двух машинах работают разные версии matplotlib, а одна версия не достаточно недавняя.


Один из способов устранить проблему (конечно) для обновления старой версии matplotlib. Если это не вариант, или вы не хотите сделать это, то обратите внимание, что the docs say:

Если интерполяция не является «ни один», то никакой интерполяции не выполняется на Agg, пс и Pdf движков. Другие бэкенды вернутся к «ближайшему».

Так что, если вы не используете Agg, ps или pdf бэкенд, вы можете изменить строку

x_ax.imshow(xcolors, cmap=cmap, interpolation='nearest') 

Конечно, если вы идете по этому пути, могут быть и другие части кода которые также используют более новые функции matplotlib. Их было бы не так легко исправить.

Смежные вопросы