Ipython: отладка кода внутри ноутбука

Я установил epd 7.3.2 на amazon EWS EC2 и объединил ipython-ноутбук в качестве публичного ноутбука.

Я запускаю сервер таким образом:

nohup ipython notebook --profile=nbserver %

Все работает нормально, я могу войти с паролем на https и код.

Теперь я хотел бы использовать pdb/ipdb для отладки функций python внутри ноутбука, но в Интернете я не могу найти процедуру настройки отладчика.

Может кто-нибудь мне помочь?

Привет

Массимо

Это установленные пакеты:

[email protected]:/opt/epdFree7.3.2/bin# ./pip freeze
EPD==7.3
Examples==7.3
Jinja2==2.6
MKL==10.3
PIL==1.1.7
Pygments==1.4
PythonDoc==2.7.3
appinst==2.1.2
apptools==4.1.0
casuarius==1.0
chaco==4.2.0
cloud==2.4.6
configobj==4.7.2
distribute==0.6.26
enable==4.2.0
enaml==0.2.0
enstaller==4.5.6
etsproxy==0.1.1
freetype==2.4.4
idle==2.7.3
ipdb==0.7
ipython==0.13.1
kernmagic==0.1.0
matplotlib==1.1.0
nose==1.1.2
numpy==1.6.1
ply==3.4
pyaudio==0.2.4
pyface==4.2.0
pyglet==1.1.4
python-dateutil==1.5
pytz==2011n
pyzmq==2.1.11
scipy==0.10.1
tornado==2.2
traits==4.2.0
traitsui==4.2.0
wsgiref==0.1.2
wxPython==2.8.10.1

[email protected]:/opt/epdFree7.3.2/bin# ./enpkg -l
prefix: /opt/epdFree7.3.2
Name                 Version              Store
============================================================
appinst              2.1.2-1              -
apptools             4.1.0-1              -
casuarius            1.0-1                -
chaco                4.2.0-1              -
cloud                2.4.6-1              -
configobj            4.7.2-2              -
distribute           0.6.26-1             -
enable               4.2.0-1              -
enaml                0.2.0-1              -
enstaller            4.5.6-1              api rh5-64
EPD                  7.3-0                -
etsproxy             0.1.1-1              -
Examples             7.3-0                -
freetype             2.4.4-1              -
idle                 2.7.3-1              -
ipython              0.13.1-2             api rh5-64
Jinja2               2.6-2                -
kernmagic            0.1.0-1              -
matplotlib           1.1.0-1              -
MKL                  10.3-1               api rh5-64
nose                 1.1.2-1              -
numpy                1.6.1-3              api rh5-64
PIL                  1.1.7-3              -
ply                  3.4-1                -
pyaudio              0.2.4-1              -
pyface               4.2.0-1              -
pyglet               1.1.4-2              -
Pygments             1.4-1                -
python_dateutil      1.5-2                -
PythonDoc            2.7.3-1              -
pytz                 2011n-1              -
pyzmq                2.1.11-1             -
scipy                0.10.1-0             -
tornado              2.2-1                -
traits               4.2.0-1              -
traitsui             4.2.0-1              -

Ответы

Ответ 1

Просто расширяя точку @Ken Arnold, чтобы люди не могли прочитать все ответы, чтобы понять это. Начиная с версии 1.0, отладка РАБОТАЕТ в ноутбуке ipython.

Просто запустите ячейку с помощью %debug, а затем вы сможете использовать типичные элементы управления для ipdb ((n)ext, step и т.д.).

Ответ 2

К сожалению, отладчик еще не интегрирован в ноутбук, но вы можете использовать другой интерфейс для подключения к ядру и вместо этого запускать отладчик. Самый простой способ, если у вас есть настройка пересылки X, - запустить %qtconsole (см. http://ipython.org/ipython-doc/dev/interactive/htmlnotebook.html#workflow-and-limitations). Вы также можете запустить %connect_info, а затем использовать информацию, которую он дает вам для запуска ipython console (т.е. Обычного терминального режима), подключенного к одному и тому же ядру.

Ответ 3

Это невозможно!

Я нашел это:

"Очень важно, что это означает, что магия отладки% не работает в ноутбуке! Мы намерены исправить это ограничение, но в то же время есть способ отладить проблемы в ноутбуке: вы можете прикрепить консоль Qt к существующему ядру для ноутбуков и запустите% debug с консоли Qt."

on Ipython Doc

Теперь точка:

  • удаленный ipython notebook --profile = nbserver работает на EWS EC2 США
  • локальная ipython qtconsole работает на моем компьютере

Файл подключения JSON на удаленном EWS EC2:

{
  "stdin_port": 55986,
  "ip": "127.0.0.1",
  "hb_port": 55385,
  "key": "984e86e7-4d88-4d74-8912-cbe46bc316c0",
  "shell_port": 49024,
  "iopub_port": 33440
}