8

私のローカルの Google アプリ エンジン開発環境では、ipython シェルを使用したいと考えています。特に、dev_server.pydjango のmanage.py shellコマンドがどのように機能するかのように、 を介して作成されたデータを使用してモデルをチェックアウトできるようにします。

sys.path(これは、が修正され、app.yaml読み取られて分析され、ローカル データストアの準備が整った後に、ipython シェルを起動する必要があることを意味します)

これに対する簡単な解決策はありますか?

4

3 に答える 3

7

まず、アプリケーションのルート ディレクトリと SDK のルート ディレクトリ ( google_appengine) を Python パスに配置できます。また、SDK のディレクトリyamlからライブラリ パスにインストールまたは追加された のようないくつかのライブラリも必要です。lib次に、モジュールをインポートして、いくつかの機能を呼び出すことができます。

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

もちろん、コード パスがサービスを呼び出そうとするとすぐに、ライブラリは例外を発生させ、何にもバインドされていないことを示します。サービス ライブラリをテスト スタブにバインドするには、testbed ライブラリを使用します。

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

開発サーバーのデータストア ファイルを使用するようにデータストア テスト スタブに指示するには、ファイルへのパスを引数init_datastore_v3_stub()として渡します。datastore_file詳細については、メソッドのドキュメント コメントを参照してgoogle.appengine.ext.testbedください。

テストベッドの詳細: https://developers.google.com/appengine/docs/python/tools/localunittesting

于 2013-01-23T08:26:36.493 に答える
1

基本的にこれを使用する必要があります: https://developers.google.com/appengine/articles/remote_api

IPython のサポートには、次の 2 つのオプションがあります。

(1) Python 2.7 (および IPython 0.13) を使用している場合は、これを使用して IPython シェルを埋め込む必要があります。

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

(2) Python 2.5 (および IPython 0.10.2) を使用している場合は、次の行を使用して 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
于 2013-01-24T16:13:22.117 に答える
0

dev_appserver.pyを実行すると、次の ようになります。

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

したがって、基本的にやりたいことは、 http://localhost:8000にアクセスすることであり、そこに「対話型コンソール」があり、それを使用して遊ぶことができます。

于 2015-11-19T06:42:31.693 に答える