2011-05-06 3 views
3

Google App Engine에서 couchdbkit이 제대로 작동하는 데 문제가 있습니다. 내 라이브러리를 제대로 가져 오지 못했거나 GAE's Python Sandbox rules을 실행했습니다. 누구나 내가 restkit을 GAE에 couchdbkit을 사용할 때 포함시킬 필요가 있는지 아십니까? 난 그냥 기본 사항 (내 CouchDB를 데이터베이스 서버에 연결 zapdome.py을 제거했습니다Google App Engine에서 couchdbkit (타사 라이브러리) 사용

애플리케이션 제목을
zapdome.py
couchdbkit/
restkit/: 여기

내 구성의) :

#! /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에서 허용하는 범위를 벗어나고 있다고 생각하기 시작했습니다. 누구든지 어떤 생각을 가지고 있습니까? 감사.

답변

1

나는 내 자신의 질문에 답하기를 싫지만, GAE's Python Sandbox의 범위 밖에서 일을하려고 노력한 것처럼 보입니다. 소켓 물건에 문제가 있다고 생각합니다. Cloudant에있는 좋은 사람들은 파이썬/장고에 대한 자유로운 호스팅 옵션을 제공하는 this Quora answer을 지적했습니다.

BTW, 나는 WebFaction으로 갔고 모든 것이 1 시간 이내에 정상적으로 작동하고 시스템 관리자가 아니지만 무료 호스팅 솔루션을 제공하지 않습니다.

0

이 경우 문제는 샌드 박스 규칙보다는 가져 오기 구문으로 보입니다. .resource에서 가져 오기를 시도하는 base에서 import *를하고 있기 때문에 불평하고있다. Python 2.5에서는 import *와 상대 모듈 경로를 함께 사용할 수 없습니다.

가져 오기 *를 변경하여 실제로 필요한 것만 가져 오십시오. 예 : 문서.

+0

드류 - 시어스, 우수 지점하지만로 변경 @ 이 '수입 URLLIB, HTTPLIB, couchdbkit.schema.properties에서 couchdbkit.schema.base 가져 오기 문서 에서 날짜 이 couchdbkit.client 가져 오기 서버에서 StringProperty 가져' 은 동일한 오류 로그를 생성합니다. couchdbkit/schema/__ init__.py에 다음이 있습니다. 'from .properties import * from .base import * from .properties_proxy import * – Ryan

관련 문제