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