EDIT
К сожалению, на данный момент это невозможно. Я обнаружил, что это ошибка в Spyder. Разработчики до сих пор выясняют, как к этому подойти .
Визуализируйте данные во время отладки кода (и я тоже хочу использовать Spyder!).
Создайте файл с именем foo.py со следующим кодом:
из ipdb import set_trace as st
импорт matplotlib.pyplot как plt
Def bar():
st()
Находясь в Ипитоне, напечатайте следующее:
В [4]: импорт foo
В [5]: foo.bar()
-Ретурн--
Нет
> где-то_over_the_rainbow\foo.py(5)bar()
3
4 def bar():
----> 5 st()
ipdb> plt.plot([1, 2], [3, 4]))
[]]
ipdb> plt.show()
Участок остается в "замороженном" состоянии. Если я выйду из отладчика, обновления сюжета. Если я попытаюсь закрыть участок, IPython выйдет из строя. Очевидно, что и то, и другое нежелательно, и ни то, ни другое не позволяет мне увидеть данные во время отладки.
Открыть IPython из командной строки:
В [4]: импортируйте foo.bar.
В [5]: foo.bar()
-Ретурн--
Нет
> где-то_over_the_rainbow\foo.py(5)bar()
3
4 def bar():
----> 5 st()
ipdb> plt.plot([1, 2], [3, 4]))
[]]
ipdb> plt.show()
Программа показывает сюжет так, как я ожидал. Но я хочу использовать Спайдер.
Запишите baz.py:
из ipdb import set_trace как st
импорт matplotlib.pyplot как plt
st()
Откройте IPython из командной строки:
В [4]: import baz
-Ретурн--
Нет
> где-то_over_the_rainbow\baz.py(4)()
2 импорт matplotlib.pyplot как plt
3
----> 4 st()
ipdb> plt.
Тогда Спайдер полностью замерзнет.
Какие-нибудь предложения?
Примечание №1 : В моем полном коде много файлов и много функций, так что разбить все вместе в одном скрипте без функций нецелесообразно.
Замечание #2: Использование любой интерактивной команды matplotlib (например, ion(), interactive(True) и т.д.) не дало никакого эффекта.
Примечание #3: Spyder версия 2.0.12, Python 2.6, matplotlib 1.0.1.