39

他の人が書いたPythonスクリプトをデバッグするようによく言われます。これらのスクリプトをIPythonに送信して、スクリプトが失敗した時点でIPythonシェルにドロップされるようにします。

残念ながら、スクリプトに必要な(必須の)コマンドラインオプションを送信する方法が見つかりません。

スクリプトとそのオプションを次のように渡すと、IPythonはすべてがIPython用であると想定します。

ipython <script_name> <script_options>

解決策や回避策はありますか?

4

5 に答える 5

48
ipython -- sometest.py 1 2 3 4
于 2011-03-17T19:45:06.977 に答える
30
ipython -i -c "%run test.py 1 2 3 4"
于 2010-11-09T20:23:36.380 に答える
5

すでに受け入れられている解決策があることは知っていますが、ipythonの最新バージョンではこれは機能しません。これは、-autoreloadを使用してトルネードテストを実行するために使用するコマンドのカットアンドペーストです。

ipython --c="%run test.py --autoreload"

これはipython.11を使用しています。

于 2011-12-02T16:58:18.413 に答える
1

ここに簡単な例があります。

script.py

from sys import argv

script, first, second, third = argv

print "The script is called:", script
print "Your first variable is:", first
print "Your second variable is:", second
print "Your third variable is:", third

シェル:

$ ipython script.py stuff things that
The script is called: ex13.py
Your first variable is: stuff
Your second variable is: things
Your third variable is: that
于 2015-12-29T04:22:09.830 に答える
0

IPythonの動作の多くの側面は、ユーザーのIPython構成ファイル(通常はにあります)の設定を介して制御できます~/.ipython/。ユーザーは、構成パラメーターの設定がそれぞれ異なる複数のプロファイルを作成できます。各プロファイルの設定は、フォルダー内の個別のフォルダーにあり.ipythonます。デフォルトのプロファイルはにprofile_defaultあり、動作をカスタマイズするためのメインファイルはにありますipython_config.py。デフォルトでは、ほぼ完全にコメント化されており、コメント行には構成変数とそのデフォルト設定が示されています。コメントを外すか、行を挿入して動作を変更します。

スクリプトの実行終了時のIPythonの動作を変更するには、次を使用します。

c.TerminalIPythonApp.force_interact = True

その後、スクリプトが終了すると(または例外が発生すると)、IPythonは実行を継続し、プロンプトを表示します。これはと同じ動作ipython -iです。

この設定をデフォルトのプロファイルで使用します。これは、IPythonが常に動作する方法だからです。そうでない場合は、この動作でプロファイルを作成して、この動作が必要なときに使用することができます。-iまたは、(明らかに文書化されていない)オプションを使い続けます。

IPython構成のドキュメントはこちら から入手できます:IPython構成の概要— IPythonドキュメントforce_interactここで説明するオプション付き:ターミナルIPythonオプション—IPythonドキュメント

于 2018-03-01T22:21:25.433 に答える