1

当我在 emacs(解释器:ipython)中使用 Elpy 时,错误消息中出现错误行。当我选择部分代码并使用 ctrl-cc 在 elpy 中运行它时,就会发生这种情况。错误消息显示错误的内容。例如:

import numpy as np

a = np.array([1,2,3])

for i in range(20):
    a = b

我故意写错代码。如果我将它作为一个整体运行,则错误消息是正确的:

In [4]: ---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-4-31bb503ed55c> in <module>()
----> 1 import codecs, os;__pyfile = codecs.open('''/tmp/py14415AqV''', encoding='''utf-8''');__code = __pyfile.read().encode('''utf-8''');__pyfile.close();os.remove('''/tmp/py14415AqV''');exec(compile(__code, '''/home/yanza15/test.py''', 'exec'));

/home/yanza15/test.py in <module>()
      4 
      5 for i in range(20):
----> 6     a = b

NameError: name 'b' is not defined

但是如果我只选择一个部分并使用 ctrl-cc 运行它:

for i in range(20):
    a = b

错误消息将是

In [5]: ---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-5-7e398e1dee8c> in <module>()
----> 1 import codecs, os;__pyfile = codecs.open('''/tmp/py14415N0b''', encoding='''utf-8''');__code = __pyfile.read().encode('''utf-8''');__pyfile.close();os.remove('''/tmp/py14415N0b''');exec(compile(__code, '''/home/yanza15/test.py''', 'exec'));

/home/yanza15/test.py in <module>()
      1 import numpy as np
----> 2 
      3 a = np.array([1,2,3])
      4 
      5 for i in range(20):

NameError: name 'b' is not defined

错误信息中的行号是2,表示我选择的第二行是错误的。但它显示的内容是整个代码中的第 2 行。那不是我想要的。如何自定义 elpy 以便错误消息显示我错误的代码的正确位置?

提前致谢!

4

0 回答 0