Google App Engine 用の最初のアプリを開発するための環境として、Eclipe+PyDev を使い始めました。Eclipse は、このチュートリアルに従って構成されます。
memcache を使い始めるまで、すべてが機能していました。PyDev はエラーを報告しますが、それを修正する方法がわかりません:
エラー: インポートからの未定義の変数: get
これを修正する方法は?確かに、それは PyDev チェッカーの問題だけです。コードは正しく、GAE で実行されます。
アップデート:
- 私は PyDev 1.5.0 を使用していますが、1.4.8 でも同じことを経験しました。
- 私の PYTHONPATH には以下が含まれます (Project Properties/PyDev - PYTHONPATH で設定):
C:\Program Files\Google\google_appengine
C:\Program Files\Google\google_appengine\lib\django
C:\Program Files\Google\google_appengine\lib\webob
C:\Program Files\Google\google_appengine\lib\yaml\lib
更新 2:
調べたところ、モジュール関数として宣言されていないことがC:\Program Files\Google\google_appengine\google\appengine\api\memcache\__init__.py
わかりました。彼らはそれを行うために次のトリックを使用します(そのような可能性について聞いたことがありません):get()
memcache
_CLIENT = None
def setup_client(client_obj):
"""Sets the Client object instance to use for all module-level methods.
Use this method if you want to have customer persistent_id() or
persistent_load() functions associated with your client.
Args:
client_obj: Instance of the memcache.Client object.
"""
global _CLIENT
var_dict = globals()
_CLIENT = client_obj
var_dict['set_servers'] = _CLIENT.set_servers
var_dict['disconnect_all'] = _CLIENT.disconnect_all
var_dict['forget_dead_hosts'] = _CLIENT.forget_dead_hosts
var_dict['debuglog'] = _CLIENT.debuglog
var_dict['get'] = _CLIENT.get
var_dict['get_multi'] = _CLIENT.get_multi
var_dict['set'] = _CLIENT.set
var_dict['set_multi'] = _CLIENT.set_multi
var_dict['add'] = _CLIENT.add
var_dict['add_multi'] = _CLIENT.add_multi
var_dict['replace'] = _CLIENT.replace
var_dict['replace_multi'] = _CLIENT.replace_multi
var_dict['delete'] = _CLIENT.delete
var_dict['delete_multi'] = _CLIENT.delete_multi
var_dict['incr'] = _CLIENT.incr
var_dict['decr'] = _CLIENT.decr
var_dict['flush_all'] = _CLIENT.flush_all
var_dict['get_stats'] = _CLIENT.get_stats
setup_client(Client())
うーん... PyDevにそれを認識させる方法はありますか?