0

Цель: Используйте GAE с Python и облачным хранилищем Google для более эффективного хранения и обслуживания изображения, чтобы в конечном итоге использовать API изображений.Нет модуля с именем google_auth_httplib2

Проблема: Не удается найти правильные модули (httplib2 и six), несмотря на успешную установку.


Время работы Пример

Python Пример кода A:

from google.cloud import storage 
from google.appengine.api import app_identity 
from google.appengine.ext import blobstore 
from google.appengine.ext.webapp import blobstore_handlers 
import webapp2 

Возвращает Образец A:

ImportError: No module named google_auth_httplib2

Примечание: также была аналогичная ошибка для шести. "Не модуль с именем шесть"


Installed Детали

питон не установлен по адресу:

C:\Python27 

шесть установлены на:

C:\python27\lib\site-packages\six-1.10.0-py2.7.egg 

httplib2 установлен на:

C:\Python27\Lib\site-packages\httplib2-0.9.2-py2.7.egg-info 

Запуск «C:> пип установить httplib2» в командной строке возвращает:

“Requirement already satisfied: httplib2 in c:\python27\lib\site-packages” 

Запуск «C:> пип установить шесть» в Возврат командной строки:

Requirement already satisfied: six in c:\python27\lib\site-packages\six-1.10.0-py2.7.egg 

Client GAE Cloud Storage установлен на:

C:\Python27\Lib\site-packages\GoogleAppEngineCloudStorageClient-1.9.22.1-py2.7.egg-info 

GAE SDK сервер хостинг с помощью "dev_appserver.py." по адресу:

C:\Users\sebastian\Documents\Web Projects\Cookbook 

Это место также содержит файл app.yaml.

скопированные модули app.yaml место

скопировал и six-1.10.0-py2.7.egg папки для моего app.yaml каталога.


Приложение 1:

app.yaml

runtime: python27 
api_version: 1 
threadsafe: true 

handlers: 

    - url:/
     script: homegcs.app 

    - url: /static 
     static_dir: static 

    - url: /.* 
     script: home.app 

    - url: /index\.html 
     script: home.app 

    - url: /stylesheets 
     static_dir: stylesheets 

    - url: /(.*\.(gif|png|jpg))$ 
     static_files: static/\1 
     upload: static/.*\.(gif|png|jpg)$ 

    - url: /admin/.* 
     script: admin.app 
     login: admin 

    - url: /.* 
     script: not_found.app 

Folder structure containing App.yaml

ответ

1

Ваши пакеты либо должны быть загружены с проектом, или добавлены в app.yaml, если они доступны в App Engine. six является доступной библиотекой, поэтому, в app.yaml добавить:

libraries: 
- name: six 
    version: "1.9.0" 

Если поставить пакет на тот же уровень, как app.yaml, он должен загрузить с проектом, и будут доступны в производстве.

Другой пользователь добавил google_auth_httplib2 в качестве пакета, а также загрузил его в проект. Хотя я думаю, что должны быть доступны непосредственно:

Module google_auth_httplib2 not found after pip installing google-cloud How can I fix it?

** У вас также есть проблема в обработчиках URL-адрес в app.yaml. Это подстановочный знак для всех URL-адресов:

- url: /.* 
    script: home.app 

Итак, каждый обработчик ниже этого никогда не пострадает.

+0

Спасибо, что, безусловно, решает 2 из 4 очевидных проблем. (шесть и ямлов-обработчиков). Я добавил изображение структуры папок, так как у меня уже есть как httplib2, так и google_auth_httplib2 в моем каталоге app.yaml, но он по-прежнему бросает ту же ошибку, что и google_auth_httplib2 не найден. –

+0

'httplib2' и' google_auth_httplib2' - 2 разных пакета. Ваша ошибка в том, что ваш код ищет 'google_auth_httplib2', в то время как у вас есть' httplib2'. Переключите свой код или используйте правильный пакет (см. Ссылку в моем ответе о том, как это сделал другой пользователь) – GAEfan

0

Вам необходимо установить Google-облако в вашем проекте, как это:

pip install google-cloud -t [my_project]/lib/google-cloud 

Убедитесь, что вы создаете, что Google облако папки первых, внутри Lib папки. После того, как вы сделаете это, изменить или создать appengine_config.py (в/my_project) и включают в себя следующее:

from google.appengine.ext import vendor 

vendor.add('lib/google-cloud') 

Все Шоул работать.

+0

спасибо, конечно, похоже, что некоторые из них исправлены. ошибка в настоящее время читает «из google.cloud хранения импорт Импорт Ошибка: Нет модуль с именем облако» @yamilabugattas –

+0

Вы уверены, что папка находится в папке, указанной в appengine_config.py? Убедитесь, что вы устанавливаете пакет в этой папке. Также попробуйте добавить из __future__ import absolute_import в начале файла. –

+0

Это не сработало для меня – pkuhar

Смежные вопросы