3

Pythonインタープリターを使用してスクリプトを実行するときにIPythonマジックを無視する最良の方法は何ですか?

IPython マジックはコードをインタラクティブに操作するため、スクリプト ファイルに IPython マジックを含めることがよくあります。たとえば、マジックを使用すると、いくつかの変更を加えてバグを修正した後、モジュールautoreloadを維持する必要はありません。reload

%load_ext autoreload
%autoreload 2

ただし、通常の Python インタープリターを使用してこのスクリプトを実行しようとすると、エラーが発生します。

  File "<string>", line 1
    %load_ext autoreload
    ^
SyntaxError: invalid syntax

ファイルが実際に実行される前に不正な構文が検出されるため、ステートメント内に IPython マジックをラップifしても機能しません。


では、Python に IPython マジックを無視させる最善の方法は何でしょうか?

python、pdb、sphinx などで実行するたびにスクリプトを変更しなければならないのは面倒です。

4

4 に答える 4

2

このような魔法は、スクリプトではなく、構成ファイルにロードする必要があります。有効な Python ではありません。

あなたのに次を入れてください~/.ipython/profile_default/ipython_config.py

c = get_config()
c.InteractiveShellApp.extensions = ['autoreload']
c.InteractiveShellApp.exec_lines = ['%autoreload 2']
c.InteractiveShellApp.exec_lines.append('print("Warning: disable autoreload in ipython_config.py to improve performance.")')
于 2015-05-31T19:00:37.983 に答える