2012-11-05 87 views
2

不知道如何解決我遇到的問題。我通過命令行格式執行在我的代碼:從shell和iPython運行

python program.py arg1 arg2 

這在大多數情況很好,但我剛剛得到IPython的,我想啓動代碼IPython中使用它進行調試。但是,我無法找到傳遞參數的最佳方法。

executable('program')是不夠的這個

和親切具有subprocess麻煩的,不能讓它的工作

subprocess.call([sys.executable, 'program.py','arg1']) 

回答

4

你應該能夠公正運行ipython program.py arg1 arg2。如果您希望在腳本運行後與程序交互,請執行ipython -i program.py arg1 arg2。 -i標誌對ipython的作用與python作用相同。

如果你已經在ipython裏面並且想運行你的腳本,你可以使用ipython magic函數運行run program.py arg1 arg2的腳本。你還可以在運行函數中使用-m選項,它的作用類似於普通python上的-m選項,以通過名稱而不是腳本路徑運行模塊。

1

ipython將命令行上的多個參數視爲要執行的文件。所以,這裏是我做了類似的處理:

ipython -i --InteractiveShellApp.code_to_run="%run my_prog.py arg1 arg2" 

%run是一個ipython magic命令。要了解它,在IPython中提示符下鍵入:

In [1]: %run? 

鍵入以下內容,瞭解有關該命令行選項:

$ ipython --help-all