3

不知道如何解决我遇到的问题。我通过命令行以以下格式执行我的代码:

python program.py arg1 arg2

在大多数情况下这很好,但我刚得到 iPython,我想在 iPython 中启动代码以使用它进行调试。但是,我找不到传递参数的最佳方式。

executable('program')这还不够

有点麻烦subprocess,不能让它工作

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

2 回答 2

5

您应该能够运行ipython program.py arg1 arg2. 如果您想在脚本运行后与程序交互,请执行ipython -i program.py arg1 arg2. -i 标志对 ipython 的作用与对 python 的作用相同。

如果您已经在 ipython 中并且想要运行您的脚本,您可以使用 ipython 魔术函数来运行带有run program.py arg1 arg2. 您还可以将 -m 选项与 run 函数一起使用,它的工作方式类似于常规 python 上的 -m 选项,以按名称而不是脚本路径运行模块。

于 2012-11-05T15:42:22.963 回答
1

ipython 将命令行上的多个参数视为要执行的文件。所以,这是我为处理类似事情所做的:

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

%run 是一个 ipython 魔术命令。要了解它,请在 ipython 提示符下键入:

In [1]: %run?

键入以下内容以了解该命令行选项:

$ ipython --help-all
于 2012-11-07T23:19:26.547 回答