Ответ 1
Вы можете получить эти зависимости с помощью этой простой установки:
sudo pip install --upgrade google-api-python-client
Это описано на странице быстрого запуска для python.
Я получил эту ошибку в 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
Вы можете получить эти зависимости с помощью этой простой установки:
sudo pip install --upgrade google-api-python-client
Это описано на странице быстрого запуска для python.
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
apiclient
не входит в список сторонней библиотеки, предоставленной средой выполнения appengine: http://developers.google.com/appengine/docs/python/tools/libraries27.
Вам нужно скопировать apiclient
в каталог проекта, и вам также нужно скопировать эти uritemplate
и httplib2
.
Примечание. Любая библиотека сторонних разработчиков, не содержащаяся в списке документации, должна скопировать в каталог проекта проекта appengine.
Существует загрузка для клиентской библиотеки API API Google API, которая содержит библиотеку и все ее зависимости, названную как google-api-python-client-gae- <version> .zip в разделе загрузки проекта. Просто распакуйте его в свой проект App Engine.
Для проекта движка приложений вы должны установить lib локально, набрав
pip install -t lib google-api-python-client
подробнее здесь
У меня была такая же проблема из-за ошибки при установке модуля URITemplate.
Это решило проблему:
pip install --force-reinstall uritemplate.py
Убедитесь, что у вас установлен только google-api-python-client
. Если вы установили apiclient
, это приведет к столкновению. Итак, запустите следующее:
sudo pip uninstall apiclient
Я исправил проблему, переустановив пакет с помощью:
pip install --force-reinstall google-api-python-client
"google-api-python-client" требует:
pip install uritemplate.py
чтобы исправить проблему на сервере разработки GAE:
from googleapiclient.discovery import build
ImportError: No module named googleapiclient.discovery
Я столкнулся с той же проблемой. Это сработало:
>>> 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
>>>
Он работал только со мной, когда я использовал sudo:
sudo pip install --upgrade google-api-python-client
У меня возникла такая же ошибка при работе над проектом для анализа последних событий календаря из Календаря Google.
Использование стандартной установки с помощью pip не помогло мне, вот что я сделал, чтобы получить нужные мне пакеты.
Перейдите непосредственно к источнику, вот ссылка для google-api-python-client, но если вам нужен другой язык, он не должен быть слишком разным.
https://github.com/google/google-api-python-client
Нажмите зеленую кнопку "Клонировать или загрузить" в левом верхнем углу и сохраните ее в виде zip файла. Переместите zip в папку проекта и извлеките его там. Затем вырежьте все файлы из папки, которую он создает, в корневую папку вашего проекта.
Да, это загромождает ваше рабочее пространство, но у многих компиляторов есть способы скрыть файлы.
После этого стандартный
from googleapiclient import discovery
отлично работает.
Надеюсь, что это поможет.