【发布时间】:2015-11-06 18:51:59
【问题描述】:
TL, DR:python 文件在 Spyder 中运行时遇到 UnicodeDecodeError,但在我在命令行中运行时可以正常工作。
我下载了一个 Python module,它包装了一个后缀树的 C 实现。构建后,它在 Spyder 中运行,但出现以下错误:
runfile('F:/src/suffix_tree-2.1/build/lib.win32-2.7/suffix_tree.py', wdir='F:/src/suffix_tree-2.1/build/lib.win32-2.7') Traceback(最近一次调用最后一次):
文件 "G:\IDE\python\Anaconda\lib\site-packages\IPython\core\interactiveshell.py", 第 3052 行,在 run_code self.showtraceback()
文件 "G:\IDE\python\Anaconda\lib\site-packages\IPython\core\interactiveshell.py", 第 1851 行,在 showtraceback 中 值, tb, tb_offset=tb_offset)
文件 "G:\IDE\python\Anaconda\lib\site-packages\IPython\core\ultratb.py", 第 1240 行,在structured_traceback 中 self, etype, value, tb, tb_offset, number_of_lines_of_context)
文件 "G:\IDE\python\Anaconda\lib\site-packages\IPython\core\ultratb.py", 第 1157 行,在structured_traceback 中 self, etype, value, elist, tb_offset, number_of_lines_of_context
文件 "G:\IDE\python\Anaconda\lib\site-packages\IPython\core\ultratb.py", 第 511 行,在structured_traceback 中 行 = ''.join(self._format_exception_only(etype, value))
文件 "G:\IDE\python\Anaconda\lib\site-packages\IPython\core\ultratb.py", 第 623 行,在 _format_exception_only 颜色。正常,s))
UnicodeDecodeError: 'ascii' 编解码器无法在位置解码字节 0xb2 20:序数不在范围内(128)
这个错误出现在我导入 _suffix_tree.pyd 之后,甚至在任何其他操作之前。
但是,如果我在命令行 (cmd) 中运行该文件,它会成功运行而不会出现任何错误。
PS:我用的是Windows,我的用户名是ASCII字符。
【问题讨论】:
-
不知道这是否有帮助,可能没有,但您是否尝试将 # -- coding: utf-8 -- 放在文件的最顶部(之前进口)?
-
不幸的是,它没有。 :-(
-
我有a similar problem(我的用户名有口音)。我用Anaconda3解决了。
-
谢谢@clemtoy。我认为这是 Spyder 中的一个问题,因为我的文件在 PyCharm 中工作。我也会尝试 Anaconda3。