IPython *脚本*的命令行选项?

时间:2010-11-09 20:18:19

标签: python ipython

我经常被要求调试其他人编写的Python脚本。我想将这些脚本发送到IPython,以便在脚本失败时将其放入IPython shell中。

不幸的是,我找不到发送脚本所需的命令行选项的方法。

当我将脚本及其选项传递给:

时,I​​Python会假设所有内容都适用于IPython
ipython <script_name> <script_options>

是否有解决方案或解决方法?

5 个答案:

答案 0 :(得分:43)

ipython -- sometest.py 1 2 3 4

答案 1 :(得分:25)

ipython -i -c "%run test.py 1 2 3 4"

答案 2 :(得分:4)

我知道有一个已经被接受的解决方案,但在最新版本的ipython中这不起作用。这是我使用--autoreload

运行龙卷风测试的命令的剪切和粘贴
ipython --c="%run test.py --autoreload"

这是使用ipython .11。

答案 3 :(得分:1)

简单示例here

<强> script.py

var request = require('request');
request({
  method: 'GET',
  url: reqURL,
  headers: 'Authorization: bearer ' + auth, //assuming var auth = $token
  json: true
 }, function(err, response, body){
    //Do whatever you want to here
});

<强>壳

from sys import argv

script, first, second, third = argv

print "The script is called:", script
print "Your first variable is:", first
print "Your second variable is:", second
print "Your third variable is:", third

答案 4 :(得分:0)

IPython行为的许多方面都可以通过用户的IPython配置文件中的设置进行控制,这些文件通常位于~/.ipython/中。用户可以创建多个配置文件,每个配置文件具有不同的配置参数设置。每个配置文件都将其设置放在.ipython文件夹中的单独文件夹中。默认配置文件位于profile_default,其中用于自定义行为的主文件为ipython_config.py。默认情况下,它几乎完全被注释,注释行显示配置变量及其默认设置。取消注释或插入行以改变行为。

要更改运行脚本结束时IPython的行为方式,请使用:

c.TerminalIPythonApp.force_interact = True

然后当脚本结束(或引发异常)时,IPython将继续运行并向您显示提示。这与ipython -i的行为相同。

我在默认配置文件中使用此设置,因为这是我始终希望IPython运行的方式。如果您不是这种情况,则可以使用此行为创建配置文件,以便在需要此行为时使用。或者继续使用(显然未记录的)-i选项。

此处提供了IPython配置文档:Introduction to IPython configuration — IPython documentation,其中包含force_interact选项:Terminal IPython options — IPython documentation