0

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') :「UnicodeDecodeError: 'ascii' コーデックはバイトをデコードできません」

  2. それを使用sys.setdefaultencoding('Cp1252')すると、エラーが解消されました。ただし、私のプログラムの出力も消えました。

  3. を使用しimport ioます。Python (nltk) - UnicodeDecodeError: 'ascii' コーデックはバイトをデコードできません

  4. inを使用unicode().decode()ntpath.pyます (このソリューションを見つけたリンクを覚えていません)。

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ください。

4

1 に答える 1

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ください。

于 2016-11-01T15:53:22.313 に答える