2013-01-22 29 views
8

Trong môi trường phát triển công cụ ứng dụng Google địa phương của tôi, tôi muốn sử dụng vỏ ipython, đặc biệt để có thể kiểm tra các mô hình với dữ liệu được tạo qua dev_server.py, làm thế nào django của manage.py shell lệnh hoạt động.Google App Engine Local (Phát triển) IPython Shell

(Điều này có nghĩa rằng vỏ ipython nên được bắt đầu sau khi sys.path đã được cố định và app.yaml được đọc và phân tích, và kho dữ liệu địa phương sẵn sàng)

Bất kỳ giải pháp đơn giản cho việc này?

+0

Điều này có vẻ như là một khởi đầu tốt: http://pythonwise.blogspot.co.il/2011/02/appengine-work-environment. html – Udi

Trả lời

7

Để bắt đầu, bạn có thể đặt thư mục gốc của ứng dụng và thư mục gốc SDK (google_appengine) trong đường dẫn Python của bạn. Bạn cũng sẽ cần một vài thư viện như yaml, hoặc được cài đặt hoặc thêm vào đường dẫn thư viện từ thư mục lib của SDK. Sau đó, bạn có thể nhập các mô-đun và gọi một số tính năng.

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

Tất nhiên, ngay khi đường dẫn mã thực hiện cuộc gọi dịch vụ, thư viện sẽ tăng ngoại lệ, nói rằng nó không bị ràng buộc gì cả. Để ràng buộc các thư viện phục vụ để kiểm tra khai, sử dụng thư viện nền tảng thử nghiệm:

>>> 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() 

Để nói sự thử nghiệm sơ khai kho dữ liệu để sử dụng tập tin kho dữ liệu máy chủ phát triển của bạn, vượt qua đường dẫn đến tập tin để init_datastore_v3_stub() như là đối số datastore_file. Xem chú thích doc cho phương thức trong google.appengine.ext.testbed để biết thêm thông tin.

Để biết thêm thông tin về nền tảng thử nghiệm: https://developers.google.com/appengine/docs/python/tools/localunittesting

+0

Đây là những gì tôi sử dụng để thử nghiệm trong một môi trường trong sạch. Tôi đang tìm kiếm một cái gì đó đơn giản như thực hiện 'gae_shell' để bắt đầu một trình bao địa phương với kho dữ liệu cục bộ" hiện tại ". – Udi

+0

Những gì tôi mô tả có vẻ dễ dàng có thể viết được với IPython, bao gồm chuyển tệp dữ liệu vào trình khởi tạo sơ khai. Bạn có cần nó để làm nhiều hơn? –

1

Về cơ bản bạn sẽ cần phải sử dụng này: https://developers.google.com/appengine/articles/remote_api

Để được hỗ trợ IPython bạn có hai lựa chọn:

(1) Nếu bạn đang làm việc với Python 2.7 (và IPython 0,13), bạn sẽ cần sử dụng tính năng này để nhúng vỏ IPython:

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

(2) Nếu bạn đang làm việc g với Python 2.5 (và IPython 0.10.2), bạn sẽ cần phải sử dụng dòng này để nhúng một vỏ IPython:

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

Đây là một mà tôi sử dụng: https://gist.github.com/4624108 vì vậy bạn chỉ cần gõ ..

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

Khi bạn chạy dev_appserver.py bạn sẽ nhận được

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

nên về cơ bản những gì bạn muốn làm là để truy cập 01.và ở đó bạn sẽ tìm thấy "Interactive Console", bạn có thể sử dụng nó để chơi xung quanh với

Các vấn đề liên quan