- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
根据我的阅读,在 Python 中调试代码有两种方法:
使用传统的调试器,例如 pdb
或 ipdb
。这支持诸如 c
for continue
、n
for step-over
、s
for step-into
等),但您无法直接访问 IPython shell,这对于对象检查非常有用。
使用 IPython by embedding代码中的 IPython shell。您可以执行 from IPython import embed
,然后在代码中使用 embed()
。当您的程序/脚本遇到 embed()
语句时,您将进入 IPython shell。这允许使用所有 IPython 好东西来全面检查对象和测试 Python 代码。但是,当使用 embed()
时,您不能再通过方便的键盘快捷键逐步通过代码。
有没有什么方法可以结合两全其美?即
可以在 MATLAB 中找到此类“增强调试”的示例,其中用户始终可以完全访问 MATLAB 引擎/shell,并且她仍然可以逐步-单步通过她的代码,定义条件断点等。根据我与其他用户的讨论,这是人们从 MATLAB 迁移到 IPython 时最怀念的调试功能。
我不想让这个问题太具体,但我主要在 Emacs 中工作,所以我想知道是否有任何方法可以将这个功能引入其中。 理想情况下,Emacs(或编辑器)将允许程序员在代码的任何位置设置断点,并与解释器或调试器通信,让它停在您选择的位置,并带来完整的 IPython该位置的口译员。
最佳答案
ipdb.set_trace() 怎么样?在您的代码中:
导入ipdb; ipdb.set_trace()
更新:现在在 Python 3.7 中,我们可以编写 breakpoint()
。它的工作原理相同,但它也服从 PYTHONBREAKPOINT
环境变量。此功能来自 this PEP .
这允许对您的代码进行全面检查,并且您可以访问诸如 c
(继续)、n
(执行下一行)、s 等命令
(单步进入该方法)等等。
见 ipdb repo和 a list of commands . IPython现在称为(编辑:部分)Jupyter .
ps:请注意,ipdb 命令优先于 python 代码。所以为了编写 list(foo)
你需要 print(list(foo))
或 !list(foo)
。
此外,如果您喜欢 ipython 提示符(它的 emacs 和 vim 模式、历史记录、完成...),您的项目很容易获得相同的提示符,因为它基于 python prompt toolkit .
关于python - 使用 IPython 逐步调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16867347/
我想跳出当前正在运行的程序并返回到 shell(无需重新启动 ipython) 最佳答案 在 Windows 上重新安装 console2 和 ipython 后,我遇到了同样的问题。如果您使用 ip
在使用 IPython 笔记本时,我越来越希望笔记本上附有一个控制台,以进行交互式编程。我发现自己添加了几行来测试代码片段,然后删除它们,这就是很好的用法。在更糟糕的用法中,我会更改同一行中的命令,一
ipthon-sql 是 ipython 的扩展,我先通过 pip install ipython-sql 安装 项目在这里:https://github.com/catherinedevlin/ip
我正在ipython Notebook中运行一些数据分析。一台单独的计算机收集一些数据并将其保存到服务器文件夹中,我的笔记本电脑会定期在该服务器上扫描新文件并进行分析。 我在while循环中执行此操作
我想让多个ipython Notebook实例在同一用户的不同端口上运行。可能吗? 类似于“NotebookApp.port”的端口列表(带有默认端口)。 最佳答案 再次运行jupyter noteb
所以 - ROOT 社区中的好人创造了以下魔法: # This is for intercepting the output of ROOT # In a cell, put %%rootprint
我正在使用 IPython 笔记本,我想在外部编辑器中编辑程序。 我如何获得 %edit file_name.py打开 Notepad++ 等编辑器。 最佳答案 运行 %edit?将为您提供%edit
精简版 我能否在 ipython 笔记本中获得 sympy 几何代数对象的漂亮 latex 风格打印? 更长的版本 在ipython笔记本,我可以从 sympy 得到各种数学对象的 pretty-pr
我不明白第四个和第六个提示中的 ${} 正在做什么,并且我找不到任何关于此的文档,Python for Unix and Linux 一书系统管理员有一个类似于第六个提示中的示例,其中变量不仅前面加上
我想在已安装 Python 2.7 的 Windows XP 计算机上运行 IPython(版本 0.12)。 我通过 Windows 二进制安装程序安装,但安装后 IPython 没有显示在菜单中,
IPython 中是否有自动关闭方括号、引号、圆括号等的选项? 我希望有一个类似于 gedit 插件中的功能。 最佳答案 通过调整 ~/.inputrc 可以让应用程序(包括 IPython)使用 r
我正在使用 IPython Web 笔记本,每个 block 之前都有一个提示编号,例如“In [68]:”。这个提示号码的用途是什么?你能用它做任何事吗?您可以/应该重置它吗? 最佳答案 IPyth
我升级到 iPython 3.0.0(Python 3.4;使用 Anaconda 环境;Mac OSX 10.9.5),打开新的 iPython Notebook session 的行为似乎发生了变
我希望能找到更多关于以下内容的文档: From one computer: C:\Python>ipython notebook opens the browser as 'IPython Noteb
我正在尝试在我的 IPython 笔记本中上传一个大小为 500MB 的网络日志文件。但是我收到错误消息“无法上传文件 >25Mb”。 有什么方法可以克服这个错误。任何帮助将不胜感激。 谢谢。 最佳答
简单地说,魔术函数 %precision 不考虑简单变量输出的浮点精度。 #Configure matplotlib to run on the browser %matplotlib noteboo
安装 IPython 后,我立即创建了一个默认配置文件: $ ipython profile create 然后,我创建了另一个,这次我给它起了名字testing: $ ipython profile
我已经尝试使用命令来拆分单元格“m -”,但它不起作用。使用 esc 或 fn 键作为修饰符时,所有键命令的重置都可以正常工作。我也处于正确的模式(edititng 模式)。 最佳答案 在编辑模式下,
我想将 ipython 笔记本中的字体类型更改为 consolas 字体类型。我首先使用 ipython profile create 但是,我不清楚在此配置文件中指定字体类型的语法。 任何帮助表示赞
我正在使用 iPython 命令行界面,经过一些操作后,我想将操作历史记录保存到笔记本文件中。但我从一开始就没有使用 iPython notebook。我还能做到吗? 最佳答案 来自@Thomas K
我是一名优秀的程序员,十分优秀!