我相信你发现自己处于这种情况,我怀疑没有办法摆脱这种情况。假设您运行了一些引发异常的 python 代码,然后您想查看它,但在这样做时不小心引发了另一个异常。如果您现在尝试事后调试,您将看到后一个异常的回溯。我的问题是,前者会永远消失吗?
例子:
def my_buggy_function(x):
y = x + 1
raise RuntimeError
Run Code Online (Sandbox Code Playgroud)
第 1 步:我提出了一个错误,我想对其进行调试
my_buggy_function(1)
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
/home/user/<ipython-input-1-430423eaff77> in <module>()
3 raise RuntimeError
4
----> 5 my_buggy_function(1)
/home/user/<ipython-input-1-430423eaff77> in my_buggy_function(x)
1 def my_buggy_function(x):
2 y = x + 1
----> 3 raise RuntimeError
4
5 my_buggy_function(1)
RuntimeError:
Run Code Online (Sandbox Code Playgroud)
第 2 步:我尝试调试错误但不小心引发了另一个错误(在这种情况下,我没有加载 pdb)
pdb.pm() #Oops..
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
/home/user/<ipython-input-2-619d77b83f20> in <module>()
----> 1 pdb.pm()
NameError: name 'pdb' is not …Run Code Online (Sandbox Code Playgroud) 我一直在学习 python 并从互联网上获取不同的东西并将它们全部放入我正在制作的这个游戏中:“你醒来......”这是一个基于文本的 assci RPG(滚动游戏)。它一直有效,直到我收到此错误:
Traceback (most recent call last):
File "C:\Users\William\Desktop\Programming\Programs\You wake up\main.py", line 16, in <module>
import helper
File "C:\Users\William\Desktop\Programming\Programs\You wake up\helper.py", line 13, in <module>
import main
File "C:\Users\William\Desktop\Programming\Programs\You wake up\main.py", line 103, in <module>
init()
File "C:\Users\William\Desktop\Programming\Programs\You wake up\main.py", line 41, in init
game_text()
File "C:\Users\William\Desktop\Programming\Programs\You wake up\main.py", line 77, in game_text
helper.way_out_quest()
AttributeError: 'module' object has no attribute 'way_out_quest'
Run Code Online (Sandbox Code Playgroud)
这是主文件(main.py):
#-------------------------------------------------------------------------------
# Name: main.py
# Purpose: An RPG (Roll playing game) where you wake up …Run Code Online (Sandbox Code Playgroud) 我正在尝试测试以下入门页面的代码:
import numpy as np
import cv2
img = cv2.imread('test.jpg', 0)
cv2.imshow('image', img)
cv2.waitkey(0)&0xFF
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)
但我得到了这个错误:
init done
opengl support available
Traceback (most recent call last):
File "showimg.py", line 5, in <module>
cv2.waitkey(0)&0xFF
AttributeError: 'module' object has no attribute 'waitkey'
Violación de segmento
Run Code Online (Sandbox Code Playgroud)
我执行了opencv安装附带的示例,它们运行正常.此外,使用Matplotlib的最后一个示例工作正常.
¿任何错误的想法?,¿任何建议?
目前为程序编写函数,一个组件是搜索python文件中是否正在使用单个变量.
功能:
def SINGLE_CHAR_VAR(python_filename):
file = open(python_filename)
lines = [0]
SINGLE_CHAR_VAR = []
for line in file:
stripped = line.strip('\n\r')
lines.append(stripped)
from utils import vars_indents
variable_list = (vars_indents(python_filename))[0]
for i in range(1, len(variable_list)):
if len(variable_list[i][0][0]) == 1:
SINGLE_CHAR_VAR.append(['SINGLE_CHAR_VAR', i, variable_list[i][0][1], variable_list[i][0][0], lines[i]])
return SINGLE_CHAR_VAR?
Run Code Online (Sandbox Code Playgroud)
当我单独使用该功能时 - 该功能正常工作.但是,当我作为一个整体调用该程序时 - 我收到以下错误消息:
Traceback (most recent call last):
File "<web session>", line 1, in <module>
File "lint_2.py", line 141, in lint
sorted_error_list = sorted_list(list_of_file_errors)
File "lint_2.py", line 84, in sorted_list
error_list = total_error_list(python_filename)
File …Run Code Online (Sandbox Code Playgroud) Operations to perform:
Synchronize unmigrated apps: google, staticfiles, twitter, messages, reflect, allauth, facebook, rest_framework, crispy_forms
Apply all migrations: account, django_comments, links, sessions, admin, fluent_comments, sites, auth, contenttypes, socialaccount
Synchronizing apps without migrations:
Creating tables...
Running deferred SQL...
Installing custom SQL...
Running migrations:
No migrations to apply.
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "C:\Users\Home\venv\lib\site-packages\django\core\management\__init__.py", line 338, in execute_from_command_line
utility.execute()
File "C:\Users\Home\venv\lib\site-packages\django\core\management\__init__.py", line 330, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:\Users\Home\venv\lib\site-packages\django\core\management\base.py", line 390, in run_from_argv
self.execute(*args, **cmd_options) …Run Code Online (Sandbox Code Playgroud) 出于调试/记录目的,我想将完整堆栈写入文件(例如在此问题中)。我可以使用traceback.format_stack(). 但是,我希望它看起来像IPython输出的更详细的回溯,例如,格式化为IPython.core.ultratb.VerboseTB.
看起来类和方法IPython.core.ultratb需要有关异常的信息,因为它们是为回溯而设计的。但我也不例外:我只想以冗长的方式显示堆栈。
如何使用 的输出方法IPython.core.ultratb.VerboseTB来格式化堆栈,例如报告的traceback.extract_stack()或inspect.stack()?
我刚开始在 rstudio 中进行调试。一开始,一切都按照这里的描述进行。
使用 后browser(),我无法回到此状态,这意味着没有交互字段,我可以在其中按hide traceback或return with debug按钮。有谁知道,出了什么问题?
traceback() 有效,但该消息不再具有交互性。options(error = function(){.rs.breakOnError(TRUE)})从这里https://support.rstudio.com/hc/en-us/community/posts/202296047-error-recovery将值设置为 TRUE,但仍然没有出现交互式回溯。RStudio 版本
平台 x86_64-w64-mingw32
arch x86_64
os mingw32
system x86_64, mingw32
status
major 3
minor 2.2
year 2015
month 08
day 14
svn rev 69053
language R
version.string R version 3.2.2 ( 2014)-0安全昵称
如果您还需要所有options()设置,请告诉我。
2018 年 11 月编辑:运行带有错误的脚本,交互式回溯处于活动状态。
getOption("error")
(function ()
{
.rs.recordTraceback(FALSE, 5, .rs.enqueueError)
})()
Run Code Online (Sandbox Code Playgroud)
销毁交互式回溯(不知道,我做了什么):
getOption("error")
(function ()
{ …Run Code Online (Sandbox Code Playgroud) 我无法理解堆栈帧和执行帧之间的差异,主要是关于traceback和inspect模块(在Python 3中).
我以为他们是相同的,但文档意味着他们不作为的方法inspect模块返回帧的对象,而方法的traceback模块不(即inspect.stack()VS traceback.print_stack().
从谷歌搜索,我知道堆栈帧是一个包含子程序状态信息(函数调用和参数数据)的数据结构.但是,根据文档,执行框架是类似的:
执行框架包含一些管理信息(用于调试),确定在代码块执行完成后执行继续的位置和方式,并且(可能最重要的)定义影响代码执行的两个名称空间,即本地名称空间和全局名称空间块.
那么堆栈帧和执行帧之间究竟有什么区别呢?
import sys
try:
raise Exception('foobar')
except:
info = sys.exc_info()
print(type(e[2])) # <class 'traceback'>
help(traceback) # NameError: name 'traceback' is not defined
Run Code Online (Sandbox Code Playgroud)
Python用于异常报告的回溯对象的类型究竟是什么?
sys.exc_info上的文档提到了参考手册,但是虽然我发现了很多关于如何操作回溯实例的信息,但我希望能够访问类型(类)本身.