ИЗМЕНИТЬ
К сожалению, на данный момент это невозможно. Я узнал, что это ошибка в Spyder. Разработчики все еще выясняют, как подходить к этому.
Цель
Визуализируйте данные во время отладки кода (и я тоже хочу использовать Spyder!).
Попытка # 1: Запустить foo.bar из IPython из Spyder
-
Создайте файл с именем foo.py со следующим кодом:
from ipdb import set_trace as st import matplotlib.pyplot as plt def bar(): st()
-
В IPython введите следующее:
In [4]: import foo In [5]: foo.bar() --Return-- None > somewhere_over_the_rainbow\foo.py(5)bar() 3 4 def bar(): ----> 5 st() ipdb> plt.plot([1, 2], [3, 4]) [<matplotlib.lines.Line2D object at 0x05CA8E90>] ipdb> plt.show()
Участок остается в "замороженном" состоянии. Если я выйду из отладчика, обновите сюжет. Если я попытаюсь закрыть график, произойдет сбой IPython. Очевидно, что это нежелательно и не позволяет мне видеть данные во время отладки.
Попытка # 2: Запустить foo.bar из IPython из командной строки
- Используйте тот же foo.py, что и в попытке # 1:
-
Откройте IPython из командной строки:
In [4]: import foo In [5]: foo.bar() --Return-- None > somewhere_over_the_rainbow\foo.py(5)bar() 3 4 def bar(): ----> 5 st() ipdb> plt.plot([1, 2], [3, 4]) [<matplotlib.lines.Line2D object at 0x03904070>] ipdb> plt.show()
Программа показывает график, как я ожидаю. НО я хочу использовать Spyder.
Попытка №3: Запустить baz.bar из IPython из командной строки
-
Напишите baz.py:
from ipdb import set_trace as st import matplotlib.pyplot as plt st()
-
Откройте IPython из командной строки:
In [4]: import baz --Return-- None > somewhere_over_the_rainbow\baz.py(4)<module>() 2 import matplotlib.pyplot as plt 3 ----> 4 st() ipdb> plt.
Затем Spyder полностью зависает.
Любые предложения?
Примечание # 1. В моем полном коде у меня много файлов и множество функций, поэтому объединение всех этих файлов в один script без функций не является жизнеспособным.
Примечание # 2. Использование любой интерактивной команды matplotlib (например, ion(), интерактивный (True) и т.д.) не имело эффекта.
Примечание № 3: Spyder версии 2.0.12, Python 2.6, matplotlib 1.0.1.