2

次のようにmemcacheを使用するライブラリ(記憶済み)を使用したい:import memcache

App Engine では、memcache を次のようにインポートする必要があります。from google.appengine.api import memcache

したがって、dev_appserver.py で実行すると、次のエラーが発生します。ImportError: No module named memcache

このライブラリを変更せずに使用できますか?

4

4 に答える 4

3

簡単に言えば、モジュールを を使用してローカル インスタンスで動作させることができたとしても、dev_appserver.pyGoogle がサーバー環境を管理しているため、コードをホスティング サービスにアップロードするときにのみ、サポートされているモジュールを使用できます。こちらをご覧ください。

長い答えは、パッケージをインストールimport memcacheする必要があるということです。memcache代わりに Google が提供する memcache モジュールを使用したい場合は、それを に変更できますがfrom google.appengine.api import memcache、Google の memcache は、記憶されている標準の Python memcache パッケージとは実質的かつ重要な違いがある可能性があり、エラーをスローしたり、まったく機能しない可能性があります。 . さらに、作業を覚えたとしても、サポートされているサードパーティのライブラリではないため、Google のサーバーでは使用できません (上記を参照)。

于 2013-10-06T17:41:35.720 に答える
2

アプリ エンジンの memcache が memcached ライブラリと同一であると仮定します。したがって、memcache.py モジュールを次のように作成します。

from google.appengine.api.memcache import *

そして、memcacheをインポートした後、memcache.set()、memcache.get()などを使用できるようになります。

于 2013-10-06T20:42:19.387 に答える
2

jayhendren の回答をさらに明確にするには、GAE の memcache サービスを使用する予定がある場合は、次を使用する必要があります。

google.appengine.api から memcache をインポート

オープン ソースの memcache ライブラリは使用できません。標準の python memcache lib を使用できる唯一のシナリオは、独自の memcache サービスをどこか (Compute Engine など) で実行していて、ソケット経由でそれに接続したい場合です。あなたはそうしていないと思います。

GAE の組み込み memcache サービスを使用する場合: GAE の memcache lib で定義されている API と標準の python memcache libs には違いがあるため、memorized にいくつかの小さな変更を加えて、GAE memcache と正常に通信できるようにする必要があります。図書館。ほとんどの場合、開発者向けの機能は標準の python lib と同じです。動作するようになったら、お知らせください。

于 2013-10-08T01:36:18.180 に答える
1

覚えているものをインポートする前に、GAE API モジュールのパスで sys.path を手動で変更してみてください:

sys.path.insert(0, '/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/api/')

暗記についてはわかりませんが、

import memcache 

動作します。

于 2013-10-06T18:31:05.523 に答える