python - Eclipse+PyDev+GAE 内存缓存 "Undefined variable from import: get"

标签 python eclipse google-app-engine pydev

我已经开始使用 Ecipe+PyDev 作为开发我的第一个 Google App Engine 应用程序的环境。 Eclipse 根据 this tutorial 配置.

在我开始使用 memcache 之前一切正常。 PyDev 报告错误,我不知道如何修复它:

alt text

错误:来自导入的 undefined variable :get

如何解决这个问题? 当然,这只是 PyDev 检查器的问题。代码正确并在 GAE 上运行。

更新:

  1. 我使用的是 PyDev 1.5.0,但在使用 1.4.8 时遇到了同样的情况。
  2. 我的 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 识别吗?

最佳答案

有一个更简洁的解决方案:尝试将 GAE 的内存缓存添加到您的强制内置函数中。

在您的 PyDev->Interpreter-Python->ForcedBuiltins 窗口中,添加“google.appengine.api.memcache”条目并应用。

双击内存缓存错误以检查它们,它们消失了!

请确保系统pythonpath包含google APE安装目录。

关于python - Eclipse+PyDev+GAE 内存缓存 "Undefined variable from import: get",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1469860/

相关文章:

python - Google App Engine 中用于 SMTP 连接的实验性套接字 API

python - 如何在 Django 模板中显示搜索 API 返回结果的文档 ID?

java - 在低级 API 中生成 id

python - matplotlib 中累积分布函数的对数图

python - "Unquote"/在python中解析bash参数字符串

java - Java 方法的退出点

java - Android、Eclipse : Item in . xml 布局未在图形布局中显示

Python 子类

python subprocess popen同步命令

eclipse - 具有内联 SVN diff 支持的编辑器(如在 Netbeans 中)?