Python 日食+;PyDev+;GAE memcache“;来自导入的未定义变量:get";
我已经开始使用Eclipe+PyDev作为为Google app Engine开发第一个应用程序的环境。Eclipse是根据配置的 在我开始使用memcache之前,一切都正常。PyDev报告错误,我不知道如何修复: 错误:导入的未定义变量:get 如何解决这个问题? 当然,这只是PyDev检查器的问题。代码正确并在GAE上运行 更新:Python 日食+;PyDev+;GAE memcache“;来自导入的未定义变量:get";,python,eclipse,google-app-engine,pydev,Python,Eclipse,Google App Engine,Pydev,我已经开始使用Eclipe+PyDev作为为Google app Engine开发第一个应用程序的环境。Eclipse是根据配置的 在我开始使用memcache之前,一切都正常。PyDev报告错误,我不知道如何修复: 错误:导入的未定义变量:get 如何解决这个问题? 当然,这只是PyDev检查器的问题。代码正确并在GAE上运行 更新: 我正在使用Pydev1.5.0,但在1.4.8中也有同样的体验 我的PYTHONPATH包括(在项目属性/PyDev-PYTHONPATH中设置): C:\
C:\Program Files\Google\Google\u appengine
C:\Program Files\Google\Google\u appengine\lib\django
C:\Program Files\Google\Google\u appengine\lib\webob
C:\Program Files\Google\Google\u appengine\lib\yaml\lib
C:\Program Files\Google\Google\appengine\Google\appengine\api\memcache\\uuu init\uuuu.py
,发现get()
未声明为memcache
模块函数。他们使用以下技巧来实现这一点(我没有听说这种可能性):
嗯。。。你知道如何强迫PyDev认识到这一点吗?你使用的是什么版本的PyDev?谷歌教程中提到的最新版本(1.5版)还是旧版本?
看 有一个类似的例子 由于PyDEV插件不读取
$HOME/.pystartup
,因此触摸函数/类不是解决方案。因为它不是动态地分析要导入的python模块的语法和结构,而是在我从Eclipse的首选项面板设置PYTHONPATH
时
那么你的PYTHONPATH
引用了谷歌库吗
它们可能是1.5中的代码完成问题,可能会迫使您禁用代码分析: 已安装
pyqt 4.5.4
。最初我安装了
pydev1.4.8
开源版本,代码完成工作正常。更新到pydev 1.5.0后,pyqt代码完成功能停止。
在“eclipse首选项->Pydev->编辑器->代码分析->执行代码分析?”中禁用Pydev代码分析后,PyQt的代码完成再次开始工作 课程等
我参加聚会有点晚了,但您可以在使用memcache有选择地关闭pydev分析的所有文件中添加以下注释:
#@pydevcodeanlysisignore
如果不想关闭项目/模块的所有代码分析,那么只需关闭该行的代码分析。说明您可以按Ctrl+1键启动“快速修复”,并在行尾插入#@UndefinedVariable
。有一个更干净的解决方案:尝试将GAE的memcache添加到强制内置
在PyDev->解释器Python->ForcedBuiltins窗口中,添加“google.appengine.api.memcache”条目并应用
双击memcache错误以将其检查回来,它们将消失
请确保系统pythonpath包含google-APE安装目录。这对我来说很有效,它与上面的解决方案不同。 直截了当地说:
只是说要将google_appengine文件夹添加到pydev python解释器库中。我通过在文件顶部的代码中添加以下几行来修复此问题:
from google.appengine.api import memcache
# work-around for Eclipse+PyDev+GAE memcache error
if not hasattr(memcache, 'set'):
Client=None
memcache.setup_client(Client)
memcache = Client
您可以在生产版本中对其进行通信
这只是为了让eclipse满意并让代码完成工作。我使用的是PyDev 1.5.0,但在1.4.8中也经历了同样的情况。1.4.8中也经历了同样的情况吗?所以这应该是PYTHONPATH定义的问题,我在EclipseIndigoSR2+Pydev2.5(谷歌应用程序引擎1.6.6应用程序)和Python3.2中仍然遇到了这个错误。奇怪的事。。。我的解决方案是在页面顶部添加
#@PydevcodeAlysisignore
,正如@Richard Green所提到的:不知道为什么,但我必须从eclipse中删除项目并重新导入它才能工作。在我删除并重新导入GAE后,这对我在OS X Lion和Indigo以及最新的PyDev 2.5+和GAE 1.6.6中起到了作用项目如@Ralphz所说…要在OS X中添加您的Google应用程序引擎文件夹。。。
from google.appengine.api import memcache
# work-around for Eclipse+PyDev+GAE memcache error
if not hasattr(memcache, 'set'):
Client=None
memcache.setup_client(Client)
memcache = Client