我已經開始使用Eclipe + PyDev作爲開發我的第一款Google App Engine應用程序的環境。 Eclipse根據this tutorial進行配置。Eclipse + PyDev + GAE memcache錯誤
一切正常,直到我開始使用memcache。 PyDev的報告中的錯誤,我不知道如何解決它:
alt text http://www.freeimagehosting.net/uploads/fc176c0957.png
錯誤:進口未定義的變量:獲得
如何解決這一問題? 當然,這只是PyDev檢查器的問題。代碼是正確的,並在GAE上運行。
UPDATE:
- 我使用的PyDev 1.5.0,但遇到了同樣的用1.4.8。
- 我PYTHONPATH包括(在項目屬性/組的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的認識是什麼?
同1.4.8?所以它應該是一個PYTHONPATH定義問題。 – VonC
我仍然遇到Eclipse Indigo SR2 + PyDev 2.5(Google App Engine 1.6.6應用程序)和Python 3.2的錯誤。奇怪的事情......在我的情況下,解決方案是在@Richard Green提到的頁面頂部添加'#@ PydevCodeAnalysisIgnore':http://stackoverflow.com/a/2930265/114029 –