Использование couchdbkit (сторонняя библиотека) в Google App Engine - PullRequest
3 голосов
/ 06 мая 2011

У меня проблемы с настройкой couchdbkit для правильной работы в Google App Engine.Я либо неправильно импортирую свои библиотеки, либо нарушил правила GAE Python Sandbox .Кто-нибудь знает, нужно ли мне включать restkit при использовании couchdbkit в GAE (отсюда и некоторые проблемы)?

Вот моя конфигурация:

app.yaml
zapdome.py
couchdbkit /
restkit /

Я удалил zapdome.py только для базовых данных (подключитесь к моему серверу базы данных CouchDB):

#! /usr/bin/env python

import urllib, httplib, datetime
from couchdbkit.schema.base import *
from couchdbkit.schema.properties import *
from couchdbkit.client import Server

USERNAME = ''
PASSWORD = ''

class QuoteEntry(Document):
    name = StringProperty()
    symbol = StringProperty()
    price = StringProperty()
server = Server('https://' + USERNAME + ':' + PASSWORD + '@' + USERNAME + '.cloudant.com/')

Это ошибки, которые яЯ регистрируюсь:

E 2011-05-05 20:39:31.309
Traceback (most recent call last):
E 2011-05-05 20:39:31.309
  File "/base/data/home/apps/zapdome/1.350215157753999092/restkit/__init__.py", line 12, in <module>
E 2011-05-05 20:39:31.309
    from .client import Client, MAX_FOLLOW_REDIRECTS
E 2011-05-05 20:39:31.309
  File "/base/data/home/apps/zapdome/1.350215157753999092/restkit/client.py", line 21, in <module>
E 2011-05-05 20:39:31.309
    from httplib import FakeSocket
E 2011-05-05 20:39:31.309
ImportError: cannot import name FakeSocket
E 2011-05-05 20:39:31.309
Traceback (most recent call last):
E 2011-05-05 20:39:31.309
  File "/base/data/home/apps/zapdome/1.350215157753999092/couchdbkit/__init__.py", line 10, in <module>
E 2011-05-05 20:39:31.310
    from .resource import  RequestFailed, CouchdbResource
E 2011-05-05 20:39:31.310
  File "/base/data/home/apps/zapdome/1.350215157753999092/couchdbkit/resource.py", line 25, in <module>
E 2011-05-05 20:39:31.310
    from restkit import Resource, ClientResponse
E 2011-05-05 20:39:31.310
ImportError: cannot import name Resource
E 2011-05-05 20:39:31.310
<type 'exceptions.SyntaxError'>: 'import *' not allowed with 'from .' (__init__.py, line 159)
Traceback (most recent call last):
  File "/base/data/home/apps/zapdome/1.350215157753999092/zapdome.py", line 4, in <module>
    from couchdbkit.schema.base import * 

Поскольку он задыхается от httplib.FakeSocket и restkit.Resource, я начинаю думать, что я выхожу за пределы того, что разрешает GAE.У кого-нибудь есть мысли?Благодаря.

Ответы [ 2 ]

1 голос
/ 07 мая 2011

Я не хочу отвечать на свой вопрос, но, похоже, я пытался сделать что-то за пределами Python Sandbox от GAE . Я думаю, что это имело проблемы с вещами сокета. Хорошие люди в Cloudant указали мне на этот ответ Quora , в котором изложены более либеральные варианты хостинга для Python / Django.

Кстати, я пошел с WebFaction и через час все заработало, и я определенно не являюсь администратором sys (но они не предлагают бесплатное решение для хостинга).

0 голосов
/ 06 мая 2011

В этом случае проблема заключается в синтаксисе импорта, а не в правилах песочницы. Это жалуется, потому что вы делаете импорт * из базы, который затем пытается импортировать из .resource. Использование импорта * с относительным путем к модулю запрещено в Python 2.5.

Вы можете попробовать изменить свой импорт *, чтобы импортировать только то, что вам действительно нужно, например, Документ.

...