2016-11-01 15 views
0

Pythonのバージョン:は2.7NLTKはUnicodeDecodeError - ntpath.pyファイルに接続

Windows版:システムのWindows 7の64ビット

言語:ロシア

Iまだインターネットでは解決されていない問題があります。ここで

は私のコードです:

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('Cp1252')を使用してsys.setdefaultencoding('utf8')How to fix: "UnicodeDecodeError: 'ascii' codec can't decode byte"

  2. を使用します。しかし、私のプログラムの出力も消えてしまった。

  3. import ioを使用。 Python (nltk) - UnicodeDecodeError: 'ascii' codec can't decode byte

  4. ntpath.pyunicode().decode()を使用しています(私はこの解決策を見つけたリンクを覚えていません)。

UPD:私は解決策を発見しました。

私はntpath.pyにこの部分を挿入しようとした:それは完璧に動作

import os 
import sys 
import stat 
import genericpath 
import warnings 

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

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

だから、ここでは、このファイル内のコードの一部です。あなたのシステム設定に別の言語がある場合は、それらを「再生」し、Cp1252を置き換えます。

+0

これはNLTKとは関係ありません。問題は、パスに適切に処理されない非ASCII文字が含まれていることです。 Pythonを初めてお使いの方は、なぜPython 3を使用していませんか?あなたはこの種の問題をはるかに少なくします。 – lenz

+0

@lenz、私は3.5バージョンで動作しようとしましたが、exeファイルでコンパイルすると多くの問題がありました。 2.7はとてもうまく動作します。この問題を避けるために私のシステムのパラメータをどうにか変更することはできますか? – Alex

+0

はい:あなたのユーザ名は "Александр"なので、 'userhome'はおそらく' r "C:\ Users \Александр" 'でしょう。 Alexander(またはAleksandr、またはDonald)という名前の新しいユーザーを作成して、フォルダーパスにはASCII文字のみが含まれるようにします。 – alexis

答えて

1

私は解決策を見つけました。

私は ntpath.pyにこの部分を挿入しようとした:それは完璧に動作

import os 
import sys 
import stat 
import genericpath 
import warnings 

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

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

だから、ここでは、このファイル内のコードの一部です。あなたのシステム設定に別の言語がある場合は、それらを「再生」し、Cp1252を置き換えます。

関連する問題