ImportError: нет модуля с именем apiclient.discovery

Я получил эту ошибку в Google App Engine Python, используя Google Translate API, Но я не знаю, как исправить,

<module>
from apiclient.discovery import build
ImportError: No module named apiclient.discovery

Я попытаюсь установить заданную среду, которая указывает на SDK Google App Engine, И снова загрузите в Google Apps Engine, всегда получите ошибку,

Ошибка: ошибка сервера

Сервер обнаружил ошибку и не смог выполнить ваш запрос. Если проблема не устранена, сообщите о своей проблеме и укажите это сообщение об ошибке и запрос, вызвавший его.

Скажите, пожалуйста, как исправить,

Спасибо

ОБНОВЛЕНИЕ: Исправлено Следуйте за помощью Nijjin, Я исправил проблемы, добавив следующие папки,

apiclient, gflags, httplib2, oauth2client, uritemplate

Ответ 1

Вы можете получить эти зависимости с помощью этой простой установки:

sudo pip install --upgrade google-api-python-client

Это описано на странице быстрого запуска для python.

Ответ 2

apiclient было оригинальным именем библиотеки.
В какой-то момент он был переключен на googleapiclient.

Если ваш код работает в Google App Engine, оба должны работать.

Если вы запускаете приложение самостоятельно, с установленным google-api-python-client, оба должны работать.

Хотя, если мы посмотрим на исходный код модуля apiclient package __init__.py, мы увидим, что модуль apiclient был просто поддерживаются для обратной совместимости.

Сохранить apiclient как псевдоним для googleapiclient.

Итак, вы действительно должны использовать googleapiclient в своем коде, так как псевдоним apiclient был просто сохранен, чтобы не нарушать устаревший код.

# bad
from apiclient.discovery import build

# good
from googleapiclient.discovery import build

Ответ 3

apiclient не входит в список сторонней библиотеки, предоставленной средой выполнения appengine: http://developers.google.com/appengine/docs/python/tools/libraries27.

Вам нужно скопировать apiclient в каталог проекта, и вам также нужно скопировать эти uritemplate и httplib2.

Примечание. Любая библиотека сторонних разработчиков, не содержащаяся в списке документации, должна скопировать в каталог проекта проекта appengine.

Ответ 4

Существует загрузка для клиентской библиотеки API API Google API, которая содержит библиотеку и все ее зависимости, названную как google-api-python-client-gae- <version> .zip в разделе загрузки проекта. Просто распакуйте его в свой проект App Engine.

Ответ 5

Для проекта движка приложений вы должны установить lib локально, набрав

pip install -t lib google-api-python-client

подробнее здесь

Ответ 6

У меня была такая же проблема из-за ошибки при установке модуля URITemplate.

Это решило проблему:

pip install --force-reinstall uritemplate.py

Ответ 7

Убедитесь, что у вас установлен только google-api-python-client. Если вы установили apiclient, это приведет к столкновению. Итак, запустите следующее:

sudo pip uninstall apiclient

Ответ 8

Я исправил проблему, переустановив пакет с помощью:

pip install --force-reinstall google-api-python-client

Ответ 9

"google-api-python-client" требует:

pip install uritemplate.py

чтобы исправить проблему на сервере разработки GAE:

from googleapiclient.discovery import build

ImportError: No module named googleapiclient.discovery

Ответ 10

Я столкнулся с той же проблемой. Это сработало:

>>> import pkg_resources
>>> pkg_resources.require("google-api-python-client")
[google-api-python-client 1.5.3 (c:\python27), uritemplate 0.6 (c:\python27\lib\site-packages\uritemplate-0.6-py2.7.egg), six 1.10.0 (c:\python27\lib\site-packages\six-1.10.0-py2.7.egg), oauth2client 3.0.0 (c:\python27\lib\site-packages\oauth2client-3.0.0-py2.7.egg), httplib2 0.9.2 (c:\python27\lib\site-packages\httplib2-0.9.2-py2.7.egg), simplejson 3.8.2 (c:\python27\lib\site-packages\simplejson-3.8.2-py2.7-win32.egg), six 1.10.0 (c:\python27\lib\site-packages\six-1.10.0-py2.7.egg), rsa 3.4.2 (c:\python27\lib\site-packages\rsa-3.4.2-py2.7.egg), pyasn1-modules 0.0.8 (c:\python27\lib\site-packages\pyasn1_modules-0.0.8-py2.7.egg), pyasn1 0.1.9 (c:\python27\lib\site-packages\pyasn1-0.1.9-py2.7.egg)]

>>> from apiclient.discovery import build
>>> 

Ответ 11

Он работал только со мной, когда я использовал sudo:

sudo pip install --upgrade google-api-python-client

Ответ 12

У меня возникла такая же ошибка при работе над проектом для анализа последних событий календаря из Календаря Google.

Использование стандартной установки с помощью pip не помогло мне, вот что я сделал, чтобы получить нужные мне пакеты.

Перейдите непосредственно к источнику, вот ссылка для google-api-python-client, но если вам нужен другой язык, он не должен быть слишком разным.

https://github.com/google/google-api-python-client

Нажмите зеленую кнопку "Клонировать или загрузить" в левом верхнем углу и сохраните ее в виде zip файла. Переместите zip в папку проекта и извлеките его там. Затем вырежьте все файлы из папки, которую он создает, в корневую папку вашего проекта.

Да, это загромождает ваше рабочее пространство, но у многих компиляторов есть способы скрыть файлы.

После этого стандартный

from googleapiclient import discovery

отлично работает.

Надеюсь, что это поможет.