nltk UnicodeDecodeError - 与ntpath.py文件连接

时间:2016-11-01 11:35:42

标签: python python-2.7 unicode nltk textblob

Python版本: 2.7

Windows版:Windows 7 64位

系统语言:俄语

我有一个尚未在互联网上解决的问题。

这是我的代码:

 import textblob

 text = "I love people"

 text = TextBlob(text)
 print text.sentiment

我收到与nltk方法相关的以下错误:

Traceback (most recent call last):
  File "C:\Users\Александр\Desktop\TextBlob.py", line 1, in <module>
    import textblob
  File "C:\Python27\lib\site-packages\textblob\__init__.py", line 9, in <module>
   from .blob import TextBlob, Word, Sentence, Blobber, WordList
   File "C:\Python27\lib\site-packages\textblob\blob.py", line 28, in <module>
    import nltk
  File "C:\Python27\lib\site-packages\nltk\__init__.py", line 128, in <module>
    from nltk.chunk import *
  File "C:\Python27\lib\site-packages\nltk\chunk\__init__.py", line 155, in <module>
   from nltk.data import load
  File "C:\Python27\lib\site-packages\nltk\data.py", line 77, in <module>
    if 'APPENGINE_RUNTIME' not in os.environ and os.path.expanduser('~/') != '~/':
  File "C:\Python27\lib\ntpath.py", line 311, in expanduser
    return userhome + path[i:]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc0 in position 9: ordinal not in range(128)

据我从Google和Stackoverflow的回答中了解到,问题与ntpath.py的语言问题有关。

我尝试了以下问题,但它们无效:

  1. 使用sys.setdefaultencoding('utf8') How to fix: "UnicodeDecodeError: 'ascii' codec can't decode byte"

  2. 使用sys.setdefaultencoding('Cp1252')它消除了错误。但是,我的程序输出也消失了。

  3. 使用import ioPython (nltk) - UnicodeDecodeError: 'ascii' codec can't decode byte

  4. unicode().decode()中使用ntpath.py(我不记得找到此解决方案的链接)。

  5. UPD:我找到了解决方案。

    我尝试将此部分插入ntpath.py

    reload(sys)
    sys.setdefaultencoding('Cp1252')
    

    因此,这是此文件中代码的一部分:

    import os
    import sys
    import stat
    import genericpath
    import warnings
    
    #another way
    reload(sys)
    sys.setdefaultencoding('Cp1252')
    

    完美无缺。如果您的系统设置中有其他语言,请“播放”它们并替换Cp1252

1 个答案:

答案 0 :(得分:1)

我找到了解决方案。

我尝试将此部分插入ntpath.py

reload(sys)
sys.setdefaultencoding('Cp1252')

因此,这是此文件中代码的一部分:

import os
import sys
import stat
import genericpath
import warnings

#another way
reload(sys)
sys.setdefaultencoding('Cp1252')

完美无缺。如果您的系统设置中有其他语言,请“播放”它们并替换Cp1252