IPython:从特定行开始运行脚本

IPython:从特定行开始运行脚本,ipython,Ipython,我正在与IPython交互编写脚本。这就是我目前所做的: 写一段代码 使用“run-i file_name.py”在ipython中运行 进行更改并重复第2步,直到我认为可以 注释掉前面的整个区块 编写基于上一段代码的新代码块 返回到步骤2 有没有更有效的方法?在使用当前命名空间中的所有变量时,是否可以从特定行启动脚本?An允许您以交互方式逐行运行脚本。IPython随附,只需运行: ipython notebook 从终端启动它。这是IPython的一个web界面,您可以通过单击“设置”

我正在与IPython交互编写脚本。这就是我目前所做的:

  • 写一段代码
  • 使用“run-i file_name.py”在ipython中运行
  • 进行更改并重复第2步,直到我认为可以
  • 注释掉前面的整个区块
  • 编写基于上一段代码的新代码块
  • 返回到步骤2
  • 有没有更有效的方法?在使用当前命名空间中的所有变量时,是否可以从特定行启动脚本?

    An允许您以交互方式逐行运行脚本。IPython随附,只需运行:

    ipython notebook 
    
    从终端启动它。这是IPython的一个web界面,您可以通过单击“设置”中的“另存为”将笔记本保存到
    *.py
    文件中


    这里有更多的信息。

    我个人也会使用ipython笔记本,但你也可以使用你最喜欢的文本编辑器,总是复制出你想要运行的代码块,并使用神奇的命令%paste在ipython shell中运行该代码块。它将为您处理缩进。

    使用
    %edit stuff.py
    (首次使用)和
    %ed-p
    (首次使用后)的魔力,它将从ipython内部调用您的
    $EDITOR
    。从编辑器中退出后,ipython将运行脚本(除非调用
    %ed-x
    )。这是到目前为止我在CLI ipython中找到的最快的工作方式。笔记本很不错,但我喜欢有一个真正的代码编辑器。

    使用ipdb(“命令行上的pip install ipdb”来安装它)

    假设您想从第18行到第23行运行脚本“foo.py”。 您将希望这样开始:

    ipdb foo.py
    
    现在,让我们jump到第18行(即忽略第18行之前的所有行):

    接下来,我们在第23行设置一个b重设点(我们不想再进一步):

    最后,让我们执行:

    ipdb> c
    
    工作完成:)

    (基于lev的回答)

    从交互式shell:

    %run -i -d foo.py
    
    然后应进入调试器,并继续执行:

    j <line_number>
    c
    
    j
    C
    
    等等


    编辑:不幸的是,这似乎有点破坏了ipython的神奇的%debug命令。

    以实现快速灵活的使用

    它类似于基于浏览器的Jupyter笔记本(正如@agonti和@magellan88所指出的,但速度可能要快得多。它还具有emacs风格的键绑定


    我使用ipdb、ipython,与tmux和vim相结合,获得了几乎像IDE一样的功能,而且速度更快。

    这不是一个基于web的工具吗?我需要一个运行速度相当快的工具。它是一个与web界面通信的服务器,所以它仍然在ipython内核上运行。它与从命令行运行ipython一样强大。我使用它感谢我所有的机器学习项目。谢谢,我刚刚查看了首页上的演示,非常好的工具。但是它不会失去所有在网页上编写代码的优秀vim功能吗?vim功能?如果你要求的话,它是一个完全胜任的编辑器。你也可以从笔记本内的命令行执行任何操作。
    %run -i -d foo.py
    
    j <line_number>
    c