144

パスを示さずに ipython 内から (モジュールではなく) python スクリプトを実行することは可能ですか? PYTHONPATH を設定しようとしましたが、モジュールに対してのみ機能するようです。実行したい

%run my_script.py

ファイルを含むディレクトリにいなくても。

4

6 に答える 6

152

「my_script.py」のディレクトリ内から、次のように簡単に実行できます。

%run ./my_script.py
于 2015-03-12T16:44:31.137 に答える
16

Python では、モジュールとスクリプトの間に違いはありません。スクリプトとモジュールの両方を実行できます。Pythonは問題のファイルを見つけることができる必要があるため、ファイルはpythonpath AFAIK上にある必要があります。ディレクトリから python を実行すると、そのディレクトリが自動的に pythonpath に追加されます。

別の Python スクリプトから Python スクリプトを呼び出す最良の方法は何ですか?を参照してください。モジュールとスクリプトの詳細については

あなたが望むことをする組み込み関数 execfile(filename) もあります

于 2012-07-31T16:02:39.673 に答える
16

%runマジックには、実行するファイルへのフル パスを取得するために使用するパラメーターがfile_finderあります (こちらを参照)。お気づきのように、必要に応じて「.py」を追加して、現在のディレクトリを検索するだけです。

マジックから使用するファイル ファインダーを指定する方法はないようですが、適切なファイル ファインダーを呼び出す独自の%runマジック コマンドを定義することを妨げるものは何もありません。%run

非常に厄介なハックとして、デフォルトfile_finderを独自のものでオーバーライドできます。

IPython.core.magics.execution.ExecutionMagics.run.im_func.func_defaults[2] = my_file_finder

正直なところ、IPython API が変化している速度では、独自の魔法を定義するのと同じくらい機能し続ける可能性があります。

于 2012-07-31T18:13:42.920 に答える
3

あなたの質問に対する正確な答えではありませんが、スクリプトの実行の最後に ipython への-iパラメーターを使用して ipython にドロップできます。

ipython -i my_script.py

スクリプトの最後に、スクリプトの変数が使用可能な ipython プロンプトにドロップされますpython -i

于 2021-07-06T21:41:50.737 に答える