2013-02-28 102 views
16

我在亞馬遜EWS EC2上安裝了epd 7.3.2,並且將ipython筆記本作爲公共筆記本服務器進行配置。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    - 
+0

相關:https:// stackoverflow。com/questions/32409629 /什麼是正確的方式來調試ipython筆記本 – 2016-04-13 12:58:31

回答

5

這是不可能的!

我發現這一點:

「非常重要的是,這意味着%調試魔術不會在筆記本電腦工作,我們打算糾正這種限制,但在此期間,有一種方法來調試問題!筆記本:您可以將Qt控制檯附加到您現有的筆記本內核上,並從Qt控制檯運行%debug。「

Ipython Doc

現在的問題是:

  • 遠程IPython的筆記本--profile = NBSERVER上EWS EC2上運行 美國
  • 當地IPython中qtconsole是在我的電腦
運行

遠程EWS EC2上的JSON連接文件是:

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

不幸的是,調試器尚未集成到筆記本中,但您可以使用另一個前端連接到內核,然後運行調試器。如果您設置了X轉發,最簡單的方法是運行%qtconsole(請參閱http://ipython.org/ipython-doc/dev/interactive/htmlnotebook.html#workflow-and-limitations)。您也可以運行%connect_info,然後使用它提供的信息運行連接到相同內核的ipython console(即普通終端模式)。

+12

從版本1.0開始,%debug現在可以工作了! (http://ipython.org/ipython-doc/stable/whatsnew/version1.0.html#notebook)請注意,儘管調試器處於活動狀態,但您將無法評估任何其他單元格,就像其他任何長單元 - 執行。 – 2013-11-07 20:21:38

26

只是擴大@Ken Arnold的觀點,所以人們不必閱讀所有的答案就可以搞清楚。 從版本1.0開始,在ipython筆記本中調試DOES WORK

只需用%debug開始單元格,然後就可以使用ipdb的典型控件((n)ext,step等)。

+1

添加%debug對我無效。 – user2725109 2016-06-11 04:22:11