当我在 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 以便错误消息显示我错误的代码的正确位置?
提前致谢!