【发布时间】:2018-05-16 11:39:08
【问题描述】:
有一段时间我收到以下错误(警告?):
错误!会话/行号在数据库中不是唯一的。历史记录移至新会话
使用 Jupyter 笔记本时(<XXXX> 是一个数字,例如 9149)。
由于 Spyder (Spyder's Warning: "Session/line number not unique in database") 报告了同样的错误,我猜测 IPython 内核日志记录存在一些问题。
问题是:运行我的代码和错误之间可能有任何关系吗?
这个错误有可能是我的代码造成的吗?我触摸IPython API如下:
import IPython
def beep():
Python.display.display(IPython.display.Audio(url="http://www.w3schools.com/html/horse.ogg", autoplay=True))
def play_sound(self, etype, value, tb, tb_offset=None):
self.showtraceback((etype, value, tb), tb_offset=tb_offset)
beep()
get_ipython().set_custom_exc((Exception,), play_sound)
我在我的代码中使用了beep() 函数。我还处理导致MemoryError 异常的大数据。
更重要的是,该错误是否会影响我的代码行为(假设我不尝试访问日志)?
[编辑] 看来这个问题与Spyder's Warning: "Session/line number not unique in database" 不同,因为我可以使用 Jupyter Notebook 但不能使用 Spyder 来重现它。
【问题讨论】:
-
你到底在做什么?我看到一些关于 beep 函数的语法问题?
-
@TarunLalwani 在我的计算完成或引发未处理的异常后定义一个函数和一个挂钩来播放马嘶声。我 100% 确定没有 SyntaxError。
-
是的,我的错误没有水平滚动。两件事情。删除日志记录时会发生什么?此外,如果您在函数内移动
IPython.display.Audio(url="http://www.w3schools.com/html/horse.ogg", autoplay=True)并将默认值保持为无。检查是否为 None 然后启动声音 -
@TarunLalwani 我已经删除了
logging模块并重写了beep()函数 - 警告仍然存在。 -
这听起来像您的 IPython 历史数据库已损坏。尝试清理它(即删除/临时重新定位您的
$IPYTHONDIR/profile_default/history.sqlite文件),看看它是否仍然发生。
标签: python python-3.x ipython jupyter-notebook