代码之家  ›  专栏  ›  技术社区  ›  JS.

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

  •  34
  • JS.  · 技术社区  · 14 年前

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

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

    当我将脚本及其选项传递给IPython时,IPython假定中的所有内容都是针对IPython的:

    ipython <script_name> <script_options>
    

    5 回复  |  直到 10 年前
        1
  •  27
  •   Chris Seymour    10 年前
    ipython -i -c "%run test.py 1 2 3 4"
    
        2
  •  44
  •   Aston M.    13 年前
    ipython -- sometest.py 1 2 3 4
    
        3
  •  4
  •   Jon Haddad    13 年前

    我知道有一个已经被接受的解决方案,但在最新版本的ipython中,这是行不通的。下面是我用来运行龙卷风测试的命令的剪切和粘贴--autoreload

    ipython --c="%run test.py --autoreload"
    

    这是用ipython.11。

        4
  •  1
  •   Parag Tyagi    9 年前

    简单的例子 here .

    脚本.py

    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
    

    $ ipython script.py stuff things that
    The script is called: ex13.py
    Your first variable is: stuff
    Your second variable is: things
    Your third variable is: that
    
        5
  •  0
  •   Tom Loredo    6 年前

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

    c.TerminalIPythonApp.force_interact = True
    

    然后当脚本结束(或引发异常)时,IPython将继续运行并向您显示一个提示。这和 ipython -i .

    总是 希望伊普顿表现好。如果你不是这样的话,你可以用这个行为创建一个配置文件,在你想要这个行为的时候使用。或者继续使用(显然没有记录的) -i 选择。

    IPython配置文档可在此处获得: Introduction to IPython configuration — IPython documentation ,和 force_interact 此处描述的选项: Terminal IPython options — IPython documentation