ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

为什么IPython没有为我编写的模块提供完整的回溯?

2019-06-29 07:45:52  阅读:212  来源: 互联网

标签:python ipython traceback


我很困惑为什么,当我写的模块中的函数中出现错误时,IPython没有向我显示导致错误的函数中的行的完整回溯.

注意:我并不是对这个特定错误的原因感到困惑,而是为什么IPython没有向我展示原因.

我的模块名为module.py,它包含函数函数,下面写有if __name__ ==’__ main__’块. (模块和功能名称已被更改,以保护无辜者的身份 – 或者可能不是那么无辜.)

这是我在提出错误时得到的回溯. (注意缺少关于函数中哪一行导致错误的信息.)

In [1]: import module as m

In [2]: call = m.function('hello')
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-2-ec0c1e40ec8c> in <module>()
----> 1 call = m.function('hello')

/home/module.py in function(greeting)

TypeError: join() takes exactly one argument (2 given)

解决方法:

你尝试使用%xmode吗?

In [2]: %xmode?
Type:       Magic function
Definition: %xmode(self, parameter_s='')
Docstring:
Switch modes for the exception handlers.

Valid modes: Plain, Context and Verbose.

If called without arguments, acts as a toggle.

如果仔细观察,下面的两个示例会有所不同,但是对于长回溯,差异更明显:

In [8]: raise ValueError('Foo')
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-8-05e81bf5c607> in <module>()
----> 1 raise ValueError('Foo')
        global ValueError = undefined

ValueError: Foo

普通模式

In [9]: xmode
Exception reporting mode: Plain

In [10]: raise ValueError('Foo')
Traceback (most recent call last):
  File "<ipython-input-10-05e81bf5c607>", line 1, in <module>
    raise ValueError('Foo')
ValueError: Foo

标签:python,ipython,traceback
来源: https://codeday.me/bug/20190629/1324371.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有