不确定如何处理我遇到的问题。我通过命令行执行我的代码格式:
python program.py arg1 arg2
在大多数情况下这很好,但我刚刚获得了iPython,我想在iPython中启动代码以使用它进行调试。但是,我找不到传递参数的最佳方法。
executable('program')
对于此
有点subprocess
出现问题,无法使其正常工作
subprocess.call([sys.executable, 'program.py','arg1'])
答案 0 :(得分:5)
您应该可以只运行ipython program.py arg1 arg2
。如果您希望在脚本运行后与程序进行交互,请执行ipython -i program.py arg1 arg2
。 -i标志对于ipython的工作方式与对python的工作方式相同。
如果您已经在ipython中并且想要运行脚本,则可以使用ipython magic函数运行带有run program.py arg1 arg2
的脚本。您还将-m选项与run函数一起使用,它将与常规python上的-m选项类似,以按名称而不是脚本路径运行模块。
答案 1 :(得分:1)
ipython将命令行上的多个参数视为要执行的文件。所以,这就是我处理类似事情的方法:
ipython -i --InteractiveShellApp.code_to_run="%run my_prog.py arg1 arg2"
%run是一个ipython魔术命令。要了解它,请在ipython提示符下键入:
In [1]: %run?
键入以下内容以了解该命令行选项:
$ ipython --help-all