1

Я пытаюсь подключиться к хранилищу данных Google App Engine с моей локальной машины. Я весь день копался в этом без всякой удачи.Невозможно получить gcloud для работы с Python и Pycharm

Я попытался подход здесь (а также много других предложений от SO, таких как Using gcloud-python in GAE и Unable to run dev_appserver.py with gcloud):

How to access a remote datastore when running dev_appserver.py?

I первого установленного gcloud на основе этого описания от Google: https://cloud.google.com/appengine/docs/python/tools/using-libraries-python-27

Согласно описанию, я должен добавить следующее к моему appengine_config.py:

from google.appengine.ext import vendor 
vendor.add('lib') 

Если я, что я получаю ошибку говоря ImportError: No module named gcloud

Если я затем переместить код на main.py, кажется, пикап Lib-папку и модули там. Мне это кажется немного странным, так как я думал, что appengine_config запускается первым, чтобы убедиться, что все было инициализировано. Но теперь я получаю следующую трассировку стека:

ERROR 2016-09-23 17:22:30,623 cgi.py:122] Traceback (most recent call last): 
    File "/Users/thomasd/Documents/github/myapp/main.py", line 10, in <module> 
    from gcloud import datastore 
    File "/Users/thomasd/Documents/github/myapp/lib/gcloud/__init__.py", line 17, in <module> 
    from pkg_resources import get_distribution 
    File "/Users/thomasd/Documents/github/myapp/lib/pkg_resources/__init__.py", line 2985, in <module> 
    @_call_aside 
    File "/Users/thomasd/Documents/github/myapp/lib/pkg_resources/__init__.py", line 2971, in _call_aside 
    f(*args, **kwargs) 
    File "/Users/thomasd/Documents/github/myapp/lib/pkg_resources/__init__.py", line 3013, in _initialize_master_working_set 
    dist.activate(replace=False) 
    File "/Users/thomasd/Documents/github/myapp/lib/pkg_resources/__init__.py", line 2544, in activate 
    declare_namespace(pkg) 
    File "/Users/thomasd/Documents/github/myapp/lib/pkg_resources/__init__.py", line 2118, in declare_namespace 
    _handle_ns(packageName, path_item) 
    File "/Users/thomasd/Documents/github/myapp/lib/pkg_resources/__init__.py", line 2057, in _handle_ns 
    loader.load_module(packageName) 
    File "/System/Library/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 "/Library/Python/2.7/site-packages/google/cloud/logging/__init__.py", line 18, in <module> 
    File "/usr/local/google_appengine/google/appengine/tools/devappserver2/python/sandbox.py", line 999, in load_module 
    raise ImportError('No module named %s' % fullname) 
ImportError: No module named google.cloud.logging.client 

Что я делаю неправильно здесь?

ответ

1

Библиотека google-cloud - это not working on App Engine, и, скорее всего, вам даже не понадобится, поскольку вы можете использовать встроенную функциональность.

С official docs вы можете использовать его как это:

import cloudstorage as gcs 
0

Я решил так: -

1.) Создайте Lib папку в директории проекта.

2.) Установить библиотеки gcloud, выполнив следующую команду в терминале от вашего пути проекта: -

pip install -t lib gcloud 

3.) Создайте appengine_config.py модуль в проекте и добавьте следующие строки кода: -

import sys 
    import os.path 
    sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'lib')) 

4.) После этого, вы можете импортировать как это: -

from gcloud import datastore 

5 .) Для того, чтобы сохранить данные в живой Google датасторе от местных: -

client = datastore.Client("project-id") 
    key = client.key('Person') 
    entity = datastore.Entity(key=key) 
    entity['name'] = ashish 
    entity['age'] = 23 
    client.put(entity) 

Это сохранит объект с именем Лицо, свойства имя и возраст. Не забудьте указать правильный идентификатор проекта.

0

Старый вопрос, но это может быть стоит в том числе:

Я неуверен состояние файла requirements.txt но я scrounged рудник немного и заметил Setuptoolsне был включен.

pip freeze не экспортирует Setuptoolsrelated question

Предполагая, что вы следующие учебник, вы, вероятно, установлены эти библиотеки КРОМЕ Setuptools в Lib.

Я добавил Setuptools == {verionnumber} к requirements.txt и исправил смежный вопрос для меня.