ImportError: невозможно импортировать язык имен в Google Cloud Language API - PullRequest
0 голосов
/ 28 апреля 2018

Я пытаюсь использовать этот пример кода из Google Natural Language API, чтобы вернуть оценку настроений. Однако каждый раз, когда я запускаю код, я получаю «ImportError: не могу импортировать язык имен». ошибка в первой строке.

Я установил библиотеку в pip, попытался удалить и переустановить, сделал учетные данные на консоли (показано, что API включен) и посмотрел это руководство, а также выполнил следующие шаги в ответе: Анализ настроений Google - ImportError: невозможно импортировать язык имен . Это не помогло. Могу ли я попробовать что-нибудь еще?

from google.cloud import language
from google.cloud.language import enums
from google.cloud.language import types

client = language.LanguageServiceClient()

text = u'Hello, world!'
document = types.Document(
    content=text,
    type=enums.Document.Type.PLAIN_TEXT)

sentiment = client.analyze_sentiment(document=document).document_sentiment

print('Text: {}'.format(text))
print('Sentiment: {}, {}'.format(sentiment.score, sentiment.magnitude))

Я также вставил это в свой терминал с правильным путем.

export GOOGLE_APPLICATION_CREDENTIALS="/....(my path)/service_key.json"

Трассировка стека:

Traceback (most recent call last):
  File "lang.py", line 3, in <module>
    from google.cloud import language
  File "/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/google/cloud/language.py", line 17, in <module>
    from google.cloud.language_v1 import LanguageServiceClient
  File "/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/google/cloud/language_v1/__init__.py", line 17, in <module>
    from google.cloud.language_v1 import types
  File "/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/google/cloud/language_v1/types.py", line 18, in <module>
    from google.api_core.protobuf_helpers import get_messages
  File "/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/google/api_core/__init__.py", line 20, in <module>
    from pkg_resources import get_distribution
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3161, in <module>
    @_call_aside
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3145, in _call_aside
    f(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3189, in _initialize_master_working_set
    for dist in working_set
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3189, in <genexpr>
    for dist in working_set
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2715, in activate
    declare_namespace(pkg)
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2274, in declare_namespace
    _handle_ns(packageName, path_item)
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2209, in _handle_ns
    loader.load_module(packageName)
  File "/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pkgutil.py", line 246, in load_module
    mod = imp.load_module(fullname, self.file, self.filename, self.etc)
  File "/.../lang.py", line 3, in <module>
    from google.cloud import language
ImportError: cannot import name language

Ответы [ 4 ]

0 голосов
/ 26 марта 2019

При использовании облачных функций Google убедитесь, что google-cloud-language указан на вкладке needs.txt: enter image description here

0 голосов
/ 08 февраля 2019

Это, кажется, дубликат этого вопроса:

Анализ настроений Google - ImportError: невозможно импортировать язык имен

Для меня было недостаточно обновить google-api-python-client и google-cloud

Вместо этого, то, что решило мою проблему, было:

!pip install google-cloud-language

Кроме того, при обновлении библиотек API Google выявляется ошибка несовместимости с библиотекой awsebcli (из AWS).

0 голосов
/ 22 февраля 2019

Попробуйте обновить пункт:

python -m pip install --upgrade pip

Затем обновите пакеты Google:

pip install --upgrade google-api-python-client
pip install --upgrade google-cloud
0 голосов
/ 30 апреля 2018

Объяснение:

Если вы посмотрите на трассировку стека, импорт google.cloud.language фактически работает и не является циклическим. Второй и третий элементы в трассировке стека langauge.py успешно запрашивают элементы внизу, в конечном итоге делегируя значение google.api_core (что является нашей средой выполнения всех этих библиотек).

Пятая строка в трассе является интересной: она соответствует строке 20 из google/api_core/__init__.py и это from pkg_resources import get_distribution. Все, что приходит после этого, является попыткой заставить этот импорт работать; поскольку это не так, ImportError вспыхивает, и предыдущий импорт не работает.

Возможное решение:

Убедитесь, что ваши pip и setuptools обновлены. Упаковка пространств имен общеизвестно хитрая, поэтому вам нужна довольно свежая версия. Просто выдайте pip install --upgrade setuptools pip.

решение Гордиана:

Рассматривали ли вы Python 3? : -)

Поиск и устранение неисправностей:

Если это не сработает (и Python 3 не является опцией), следующая вещь, которую мы должны знать, это то, что это за последний сбой. Предпоследний звонок в треке - это звонок на imp.load_module(fullname, self.file, self.filename, self.etc). Нам нужно знать, что это за значения, чтобы продолжить устранение неполадок. Чтобы получить их, добавьте import pdb ; pdb.set_trace() непосредственно перед неудачным импортом в ваш код. Это бросит вас в отладчик на этом этапе. Используйте n (далее) и s (шаг в функцию) для перемещения по коду (вы можете получить значения переменных и т. Д., Введя их в REPL). Если вы можете распечатать значения того, что конкретно пытается импортировать, мы можем помочь вам в дальнейшем.

...