当我在emacs中使用Elpy(解释器:ipython)时,我在错误消息中出错了。当我选择部分代码并使用ctrl-c-c在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-c-c来运行它:
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以便错误消息显示我错误的代码的正确位置?
提前致谢!