2013-01-22 3 views
8

로컬 Google 애플 리케이션 엔진 개발 환경에서 ipython 셸을 사용하고 싶습니다. 특히 dev_server.py, 을 통해 생성 된 데이터가있는 모델을 확인하고 싶습니다. 어떻게 장고의 manage.py shell 명령이 작동합니다.Google App Engine 로컬 (개발) IPython 쉘

(이 sys.path 고정한 후 ipython 쉘이 시작되어야하고 app.yaml 판독하고 분석하여 로컬 데이터 저장소가 준비되었음을 의미)

이에 대한 간단한 해결책 없음?

+0

이것은 좋은 시작 인 것 같습니다 : http://pythonwise.blogspot.co.il/2011/02/appengine-work-environment. html – Udi

답변

7

먼저 개발자의 응용 프로그램 루트 디렉토리와 SDK 루트 디렉토리 (google_appengine)를 Python 경로에 넣을 수 있습니다. SDK의 lib 디렉토리에서 라이브러리 경로에 설치되거나 추가 된 yaml과 같은 몇 개의 라이브러리가 필요합니다. 그런 다음 모듈을 가져오고 일부 기능을 호출 할 수 있습니다. 물론

>>> import sys 
>>> sys.path.append('/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine') 

은 즉시 코드 경로가 서비스 호출을 시도로서, 라이브러리는이 아무것도에 바인딩되지 않은 말, 예외를 발생합니다. 스텁을 테스트 할 수있는 서비스 라이브러리를 결합하기 위해, 테스트 베드 라이브러리를 사용 :

>>> from google.appengine.ext import testbed 
>>> tb = testbed.Testbed() 
>>> tb.activate() 
>>> tb.init_datastore_v3_stub() 
>>> from google.appengine.ext import db 
>>> import models 
>>> m = models.Entry() 
>>> m.title = ‘Test’ 
>>> m.put() 

는, 개발 서버의 데이터 저장소 파일을 사용하여 데이터 저장소 테스트 스텁을 말해 datastore_file 인수로 init_datastore_v3_stub()에 파일의 경로를 전달합니다. 자세한 내용은 google.appengine.ext.testbed의 메소드에 대한 문서 주석을 참조하십시오. https://developers.google.com/appengine/docs/python/tools/localunittesting

+0

이것은 깨끗한 환경에서 테스트 할 때 사용하는 것입니다. "gae_shell"을 실행하여 "현재"로컬 데이터 저장소로 로컬 쉘을 시작하는 간단한 것을 찾고 있습니다. – Udi

+0

필자가 설명했듯이 데이터 저장소 파일을 스텁 이니셜 라이저에 전달하는 것을 포함하여 IPython으로 쉽게 스크립팅 할 수 있습니다. 더 많은 일을하기 위해 필요합니까? –

1

는 기본적으로이를 사용해야합니다 : 테스트 베드에 대한 자세한 내용은

https://developers.google.com/appengine/articles/remote_api IPython 지원에 대한

두 가지 옵션이 있습니다 :

(1)와 함께 작업하는 경우 파이썬 2.7 (및 IPython 0.13) 당신이 IPython 쉘을 포함하려면이 옵션을 사용해야합니다 :

from IPython.frontend.terminal.interactiveshell import TerminalInteractiveShell 
shell = TerminalInteractiveShell(user_ns=namespace) 
shell.mainloop() 

(2) 당신이 일하는 경우 파이썬 2.5 (및 IPython 0.10.2)와 g 당신은 IPython 쉘 포함이 줄을 사용해야합니다

from IPython.Shell import IPShellEmbed 
ipshell = IPShellEmbed(user_ns=namespace, banner=banner) 
ipshell() 

이 내가 사용하는 하나입니다 https://gist.github.com/4624108 그래서 그냥 입력을 ..

>> python console.py your-app-id 
0

당신은 당신이 이렇게 기본적으로 당신이 원하는 무엇을

starting module "default" running at: http://127.0.0.1:8080 
Starting admin server at : http://localhost:8000 

을 얻을 것이다 dev_appserver.py가 01,238에 액세스하는 것입니다 실행되면그리고 거기에 "대화 형 콘솔"이 있습니다. 주위에서 놀기 위해 사용할 수 있습니다