使用 nltk.corpus.gutenberg.fileids() 的路径解码错误
Decoding error in paths using nltk.corpus.gutenberg.fileids()
当我 运行 nltk.corpus.gutenberg.fileids()
与 Python 2.7 (Anaconda, Windows) 我得到以下错误:
File "C:\Anaconda\lib\ntpath.py", line 85, in join
result_path = result_path + '\'
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 9:
ordinal not in range(128)
我使用Python 3.4 时没有这个错误。
也许我错了,但我怀疑路径包含口音(因为我的 Windows 用户名中有口音)。
当我在ntpath.py
中添加一些print
时,没有打印任何东西我不知道为什么(?)所以我无法自己调试
编辑: import nltk
足以得到错误。
我猜 Python 2 nltk 在非 ASCII 路径方面存在一些问题。使用 Python 3 可能是这里最简单的修复方法,至少假设您没有太多无法在其中运行的代码。很难肯定地说,因为您没有包含完整的回溯,但可能必须修补 nltk 才能为 Python 2 修复此问题。否则,您需要避免使用非 ASCII 字符的路径(意味着避开您的用户目录或更改您的用户名)。
当我 运行 nltk.corpus.gutenberg.fileids()
与 Python 2.7 (Anaconda, Windows) 我得到以下错误:
File "C:\Anaconda\lib\ntpath.py", line 85, in join
result_path = result_path + '\'
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 9:
ordinal not in range(128)
我使用Python 3.4 时没有这个错误。 也许我错了,但我怀疑路径包含口音(因为我的 Windows 用户名中有口音)。
当我在ntpath.py
中添加一些print
时,没有打印任何东西我不知道为什么(?)所以我无法自己调试
编辑: import nltk
足以得到错误。
我猜 Python 2 nltk 在非 ASCII 路径方面存在一些问题。使用 Python 3 可能是这里最简单的修复方法,至少假设您没有太多无法在其中运行的代码。很难肯定地说,因为您没有包含完整的回溯,但可能必须修补 nltk 才能为 Python 2 修复此问题。否则,您需要避免使用非 ASCII 字符的路径(意味着避开您的用户目录或更改您的用户名)。