我经常被要求调试其他人编写的Python脚本。我想将这些脚本发送到IPython,以便在脚本失败时将其放入IPython shell中。
不幸的是,我找不到发送脚本所需的命令行选项的方法。
当我将脚本及其选项传递给:
时,IPython会假设所有内容都适用于IPythonipython <script_name> <script_options>
是否有解决方案或解决方法?
答案 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。