Python-Version: 2,7nltk UnicodeDecodeError - verbunden mit der ntpath.py Datei
Windows-Version: Windows 7 64-bit
Sprache des Systems: Russische
I habe ein Problem, das im Internet noch nicht gelöst ist.
Hier ist mein Code:
import textblob
text = "I love people"
text = TextBlob(text)
print text.sentiment
ich die folgende Fehlermeldung mit der nltk
Methode get connected:
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)
Soweit ich aus den Antworten von Google und Stackoverflow, verstand das Problem verwendet ist zu Sprachproblemen von ntpath.py
.
habe ich versucht, die folgenden Probleme, und sie hat nicht funktioniert:
sys.setdefaultencoding('utf8')
How to fix: "UnicodeDecodeError: 'ascii' codec can't decode byte"sys.setdefaultencoding('Cp1252')
Verwendung Verwenden Sie den Fehler beseitigt. Die Ausgabe meines Programms verschwand jedoch ebenfalls.Verwenden
import io
. Python (nltk) - UnicodeDecodeError: 'ascii' codec can't decode byteMit
unicode().decode()
inntpath.py
(ich erinnere mich nicht, einen Link, wo ich diese Lösung gefunden).
UPD: Ich habe eine Lösung gefunden.
Ich habe versucht, diesen Teil in ntpath.py
einzufügen:
import os
import sys
import stat
import genericpath
import warnings
#another way
reload(sys)
sys.setdefaultencoding('Cp1252')
Es funktioniert perfekt:
reload(sys)
sys.setdefaultencoding('Cp1252')
So, hier der Teil des Codes in dieser Datei ist. Wenn Sie eine andere Sprache in Ihren Systemeinstellungen haben, "spielen" Sie mit ihnen und ersetzen Sie Cp1252
.
Das hat nichts mit NLTK zu tun, denke ich.Das Problem besteht darin, dass Ihr Pfad Nicht-ASCII-Zeichen enthält, die nicht ordnungsgemäß behandelt werden. Wenn du neu in Python bist, warum arbeitest du nicht mit Python 3? Sie werden viel weniger Probleme dieser Art haben. – lenz
@lenz, Ich habe versucht, in einer Version 3.5 zu arbeiten, aber ich hatte eine Menge Probleme mit dem Kompilieren in EXE-Dateien. 2.7 funktioniert ziemlich gut damit. Kann ich irgendwie die Parameter meines Systems ändern, um dieses Problem zu vermeiden? – Alex
Ja, du kannst: Dein Benutzername ist "Александр", also 'userhome' ist wahrscheinlich' r "C: \ Users \ Александр" '. Erstellen Sie einen neuen Benutzer namens Alexander (oder Aleksandr oder Donald), so dass Ordnerpfade nur ASCII-Zeichen enthalten. – alexis