18

我在亚马逊 EWS EC2 上免费安装了 epd 7.3.2,并将 ipython notebook 作为公共笔记本服务器。

我以这种方式运行服务器:

nohup ipython notebook --profile=nbserver %

一切正常,我可以在 https 和代码上使用密码登录。

现在我想使用 pdb/ipdb 来调试笔记本中的 python 函数,但是在互联网上我找不到如何设置调试器的过程。

有人能帮我吗 ?

问候

马西莫

这些是已安装的软件包:

root@domU-xx-xx-xx-xx-xx-xx:/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

root@domU-xx-xx-xx-xx-xx-xx:/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              -
4

3 回答 3

26

只是扩展@Ken Arnold 的观点,这样人们就不必阅读所有答案来弄清楚这一点。从 1.0 版开始,在 ipython 笔记本中调试确实有效。

只需启动单元格,%debug然后您就可以使用 ipdb 的典型控件((n)extstep等)。

于 2014-03-06T00:02:41.960 回答
8

不幸的是,调试器尚未集成到笔记本中,但您可以使用另一个前端连接到内核并在那里运行调试器。如果您设置了 X 转发,最简单的方法是运行%qtconsole(请参阅http://ipython.org/ipython-doc/dev/interactive/htmlnotebook.html#workflow-and-limitations)。您也可以运行%connect_info,然后使用它提供的信息来运行ipython console(即普通终端模式之一)连接到同一个内核。

于 2013-05-27T23:40:28.407 回答
5

这不可能!

我找到了这个:

“非常重要的是,这意味着 %debug 魔法在 notebook 中不起作用!我们打算纠正这个限制,但与此同时,有一种方法可以在 notebook 中调试问题:你可以将 Qt 控制台附加到现有的笔记本内核,并从 Qt 控制台运行 %debug。”

Ipython 文档上

现在的重点是:

  • 远程 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
}
于 2013-02-28T11:15:39.760 回答