2012-11-05 48 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