РЕДАКТИРОВАТЬ
К сожалению, на данный момент это невозможно.Я обнаружил, что это ошибка в 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, что и в Attempt# 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 : в моем полном коде у меня много файлов и много функций, поэтому объединение их воедино в одном скрипте без функций невозможно.
Примечание # 2 : Использование любой интерактивной команды matplotlib (например, ion (), interactive (True) и т. Д.) Не дало никаких результатов.
Примечание # 3 : Spyder версии 2.0.12, Python 2.6, matplotlib1.0.1.