问题标签 [ipdb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - ipdb 正在触发 ImportError
当我在本地运行 Django 站点时,ipdb 为我触发了导入错误。我正在使用 Python 2.7 和虚拟环境。
which ipdb
显示 path (/usr/local/bin/ipdb)
,which ipython
这让我感到惊讶,因为我认为它应该显示我的 venv 路径(但如果它是全局的,它不应该工作吗?)。所以我尝试pip install --target=/path/to/venv ipdb
了,现在它出现了pip freeze
(以前没有),但仍然给我一个导入错误。
which pip
给/Users/myname/.virtualenvs/myenv/bin/pip/
我自己的路: /Users/myname/.virtualenvs/myenv/bin:/Users/myname/.venvburrito/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/myname/bin:/usr/local/bin
系统路径:
'/Users/myname/Dropbox/myenv', '/Users/myname/.venvburrito/lib/python2.7/site-packages/pip-1.4.1-py2.7.egg', '/Users/myname/.venvburrito/lib/python2.7/site-packages', '/Users/myname/.venvburrito/lib/python2.7/site-packages/setuptools-8.2-py2.7.egg', '/Users/myname/.virtualenvs/myenv/lib/python27.zip', '/Users/myname/.virtualenvs/myenv/lib/python2.7', '/Users/myname/.virtualenvs/myenv/lib/python2.7/plat-darwin', '/Users/myname/.virtualenvs/myenv/lib/python2.7/plat-mac', '/Users/myname/.virtualenvs/myenv/lib/python2.7/plat-mac/lib-scriptpackages', '/Users/myname/.virtualenvs/myenv/Extras/lib/python', '/Users/myname/.virtualenvs/myenv/lib/python2.7/lib-tk', '/Users/myname/.virtualenvs/myenv/lib/python2.7/lib-old', '/Users/myname/.virtualenvs/myenv/lib/python2.7/lib-dynload', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages', '/Users/myname/.virtualenvs/myenv/lib/python2.7/site-packages']
如果我从终端运行 ipdb,它工作正常。我试过重新启动我的终端。
堆栈跟踪:
python-2.7 - 尝试使用 ipdb 调试使用 Python+Blessed 制作的终端应用程序会破坏 IPython?
我正在使用Blessed库来构建一个简单的终端应用程序。
我的应用程序基于以下简单的示例编辑器构建:https ://github.com/jquast/blessed/blob/master/bin/editor.py
警告:以下步骤会破坏你的 IPython,我不知道如何修复它!
出于这个问题的目的,我将只使用editor.py
. 让我们进行一些更改以允许调试:
1)import ipdb
2) 装ipdb.set_trace()
上line 224
立即运行editor.py
:python editor.py
。应产生以下错误:
现在,每当通过执行ipython
命令运行 IPython 时,都会产生以下错误:
所以,IPython 似乎在全球范围内被打破了。我在 Cygwin 和 Ubuntu 上都遇到了这个问题。
怎么了?
python - Python 的 ipdb 在“下一个”和“继续”时的行为不同
我正在寻找奇怪行为的潜在原因。
我观察到的代码已被替换。此外,恢复到现在发生的提交会产生不同的结果。
我担心这是其他东西的症状,以后可能会回来咬我。
问题是应用程序会在这个简单的行上崩溃:
说列表索引超出范围。
在该行之前放一个ipdb.set_trace
右边,并运行命令“ p self.user.user_type
”将正确打印 0。
键入“ next
”会起作用。输入“ continue
”会崩溃,说list index out of range
。
也许 1/10 次尝试,“ continue
”会起作用,但稍后会在不相关的行上崩溃,但仍然向我显示上面的行作为错误的原因。
持续点击“ next
”最终也会在其他不相关的行上崩溃,但也会显示原始的“ if self.user.user_type in [0,1]:
”作为错误的来源。
当我第一次遇到这个问题时,我没有尝试更新 ipdb 和 ipython,但是在更新两者后现在恢复到该提交仍然在不相关的行上崩溃后在回溯中显示不正确的行。无辜线路上的崩溃不再发生。
我已经在 C 中处理了相当多的内存损坏错误,但是我对 python 比较陌生,不知道是什么可能导致这种情况。
应用程序中没有什么太疯狂的事情,它只是一个 http 请求,由 处理Tornado
,然后启动我的处理程序类,这就是发生这种情况的地方。
也没有多线程。
python - 如何在 Pycharm 的当前帧中运行 shell 表达式?
在 Pycharm 中,当您在调试模式下运行测试时,您可以在断点处停止它并查看表达式,甚至验证其中的一些表达式,但是有没有办法在 shell 中运行任意表达式,就像您通常可以在知识产权数据库?
python - iPython 调试器不提供任何见解
假设我有以下功能:
这是我跑步时得到的%debug simple_func()
:
如果我进入n
调试器,会向我吐出 20 并返回None
.
这是跨函数、解释器、机器等发生的事情的简化版本。发生了什么?为什么我不能让我的任何调试器做我想做的事,而我只需要做一些非常简单的逐行单步调试?
python - ipython shell 没有打开
我在虚拟环境中工作。
以下是requirements.txt:
我正在使用python-3.5
. Ipython 版本是5.0
.
我已经ipdb
在我的代码中加入了调试。当控制到达那个点时,它会停在那里,但ipython
控制台没有打开。
另外,如果我使用pdb
,那么它工作正常。
所以我相信问题在于ipython
我无法弄清楚。
我在这里有什么遗漏吗。可能是什么问题。
python - ipdb如何将python调试器带到调用第三方代码的框架
在我的 python 代码中,我有几个级别的调用堆栈,如下所示:
第三方代码中某处发生异常(帧 f5)。我使用 ipdb 转到发生异常的帧,并使用 up 命令“u”将调试器带回到我的代码调用第三方代码的帧(帧 f2)。
有时第三方代码有很多层,所以我需要多次按 u。有没有办法快速将调试器带到调用第三方代码的代码框架中?
python - Itertools.product 引发“参数错误”
我在这里有点迷路:
我不能itertools.product
在我的代码中使用。setUp
这是 unittest方法的断点:
我很确定我没有对模块本身做任何奇怪的事情,因为它在我的代码库中(那里没有取消提交的更改):
如果我在 Ipython 解释器中尝试这个,它工作正常。
我什至不知道如何调试这个。你能帮忙的话,我会很高兴。
谢谢你。
python - 如何在事后调试时退出 ipdb?
我喜欢使用以下方法检查 Python 脚本中的错误:
这让我进入一个 pdb 提示符,我可以从那里c
继续执行,当它遇到错误时,我可以检查变量然后q
退出脚本执行以返回我的 shell。
我对 iPython 调试器模块进行了同样的尝试,因为它更加丰富多彩:
但是,一旦检查完错误,我就无法退出调试器。使用q
quit 命令只是在重新执行脚本和事后模式之间不断切换:
如何退出这个调试器?
python - 使用 ipdb 而不是 pdb 与 py.test --pdb 选项
我想使用ipdb而不是pdb和py.test --pdb选项。这可能吗?如果是这样,怎么做?
显然,我可以import ipdb; ipdb.set_trace()
在代码中使用,但这需要运行测试,观察它失败,打开一个文件,在所述文件中找到故障点,编写上面的行,重新运行测试。如果我能有一些东西可以绕过所有这些,那就太麻烦了。