web-dev-qa-db-ja.com

Ipython:ノートブック内のコードのデバッグ

Epd7.3.2をAmazonEWS EC2に無料でインストールし、ipythonノートブックをパブリックノートブックサーバーとして作成しました。

私はこのようにサーバーを実行します:

Nohup ipython notebook --profile=nbserver %

すべてが正常に機能しています。httpsとコードでパスワードを使用してログインできます。

ここで、pdb/ipdbを使用してdebug 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              -
18
msalese

@Ken Arnoldのポイントを拡張するだけで、人々はこれを理解するためにすべての答えを読む必要がなくなります。バージョン1.0以降、ipythonノートブックでのデバッグ動作します

セルを%debugで開始するだけで、ipdbの一般的なコントロール((n)extstepなど)を使用できるようになります。

26
cd98

残念ながら、デバッガーはまだノートブックに統合されていませんが、別のフロントエンドを使用してカーネルに接続し、代わりにそこでデバッガーを実行できます。 X転送を設定している場合、最も簡単な方法は%qtconsoleを実行することです( http://ipython.org/ipython-doc/dev/interactive/htmlnotebook.html#workflow-and-を参照)制限 )。 %connect_infoを実行してから、提供された情報を使用して、同じカーネルに接続されたipython console(つまり、通常のターミナルモードのもの)を実行することもできます。

8
Ken Arnold

それは不可能です!

私はこれを見つけました:

「非常に重要なことですが、これは%debugマジックがノートブックで機能しないことを意味します!この制限を修正するつもりですが、それまでの間、ノートブックの問題をデバッグする方法があります。既存のコンソールにQtコンソールを接続できます。ノートブックカーネル、およびQtコンソールから%debugを実行します。」

on Ipython Doc

今ポイントは:

  • リモートipythonノートブック--profile = nbserverはEWSEC2USAで実行されています
  • ローカルのipythonqtconsoleが私のPCで実行されています

リモートEWSEC2のJSON接続ファイルは次のとおりです。

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