2013-02-28 28 views
16

Zainstalowałem epd 7.3.2 za darmo na Amazon EWS EC2 i na kolagowanym iPythonie jako publiczny serwer notebooków.Ipython: Debugowanie kodu wewnątrz notebooka

uruchomić serwer w ten sposób:

nohup ipython notebook --profile=nbserver % 

Wszystko działa dobrze, mogę się zalogować z hasłem na HTTPS i kodu.

Teraz chciałbym użyć pdb/ipdb do funkcji debugowania Pythona wewnątrz notebooka, ale w Internecie nie mogę znaleźć procedury konfiguracji debuggera.

Czy ktoś może mi pomóc?

Pozdrowienia

Massimo

Są zainstalowane pakiety:

[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    - 
+0

Powiązane: https: // stackoverflow.com/questions/32409629/what-is-the-right-way-to-debug-in-ipython-notebook –

Odpowiedz

5

To nie możliwe!

Znalazłem to:

„Bardzo ważne jest, oznacza to, że magia% debug nie działa w notatniku Zamierzamy poprawić to ograniczenie, ale w międzyczasie, nie jest sposobem na problemy debugowania w! notebooka: możesz dołączyć konsolę Qt do istniejącego jądra notebooka i uruchomić% debug z konsoli Qt. "

na Ipython Doc

Teraz chodzi o to:

  • zdalnego ipython notebook --profile = nbserver działa na EWS EC2 USA
  • lokalny qtconsole ipython działa na moim komputerze

Plik połączenia JSON na zdalnym serwerze EWS EC2 to:

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

Niestety debugger nie został jeszcze zintegrowany z notebookiem, ale można użyć innego interfejsu, aby połączyć się z jądrem i uruchomić zamiast niego debugger. Najprostszym sposobem, jeśli masz skonfigurowaną funkcję X forwarding, jest uruchomienie %qtconsole (patrz http://ipython.org/ipython-doc/dev/interactive/htmlnotebook.html#workflow-and-limitations). Można również uruchomić %connect_info, a następnie użyć informacji, które daje, aby uruchomić ipython console (tj. Zwykły tryb terminalowy) podłączonych do tego samego jądra.

+12

Od wersji 1.0,% debug teraz działa! (http://ipython.org/ipython-doc/stable/whatsnew/version1.0.html#notebook) zwróć uwagę, że chociaż debugger jest aktywny, nie będziesz w stanie ocenić żadnych innych komórek, tak jak każdego innego długiego - uruchamianie. –

26

Po prostu dodajemy punkt Berka Arnolda, aby ludzie nie musieli czytać wszystkich odpowiedzi, aby to zrozumieć. Od wersji 1.0, debugowanie wykonuje pracę w notesie ipython.

Po prostu uruchom komórkę za pomocą %debug, a następnie będziesz mógł korzystać z typowych elementów sterujących dla ipdb ((n)ext, step itd.).

+1

Dodawanie% debug nie działa dla mnie. – user2725109

Powiązane problemy