首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >GAE AttributeError

GAE AttributeError
EN

Stack Overflow用户
提问于 2010-03-22 22:44:34
回答 2查看 732关注 0票数 2

我的GAE应用程序在我的电脑上运行得很好,但当我上传它时,我开始得到一个AttributeError,特别是:

代码语言:javascript
运行
复制
AttributeError: 'dict' object has no attribute 'item'

我使用的是pylast接口(last.fm--link的一个API )。具体地说,我访问的是这种类型的变量列表:

代码语言:javascript
运行
复制
SimilarItem = _namedtuple("SimilarItem", ["item", "match"])

我有一个这种类型的变量,名为sim,当我得到属性错误时,我正在尝试访问sim.item

我应该注意到,我在我的计算机上使用的是Python2.6,并且我知道GAE运行在Python2.5上。这会有什么不同吗?我认为它们是向后兼容的。

最后,我认为这可能是pylast导入的模块的问题--也许它们不能与GAE或其他什么一起工作?我做了一些研究,但没有得到任何结果。以下是导入:

代码语言:javascript
运行
复制
import hashlib
import httplib
import urllib
import threading
from xml.dom import minidom
import xml.dom
import time
import shelve
import tempfile
import sys
import htmlentitydefs

在这个令人沮丧的问题上,如果有任何帮助,我将不胜感激。提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-03-22 22:58:14

Python2.5没有namedtuple。它是在2.6中添加的。

Python:看起来_namedtuple函数是由pylast提供的,它将在Python2.5或更早的版本中使用真正的namedtuple,但在Python2.5或更早的版本中将后退到普通的老式dict。这意味着在生产环境中运行时必须使用sim['item']sim.get('item')

下面是该函数的源代码:

代码语言:javascript
运行
复制
def _namedtuple(name, children):
    """
        collections.namedtuple is available in (python >= 2.6)
    """

    v = sys.version_info
    if v[1] >= 6 and v[0] < 3:
        return collections.namedtuple(name, children)
    else:
        def fancydict(*args):
            d = {}
            i = 0
            for child in children:
                d[child.strip()] = args[i]
                i += 1
            return d

        return fancydict
票数 3
EN

Stack Overflow用户

发布于 2010-03-22 23:17:25

是的,Python2.6主要是从backwards-compatible到2.5 --这意味着在2.5中运行的东西将主要在2.6中运行。但你似乎误解了backwards的意思--它是forwards的反义词,意思是在2.6中运行的东西(如果它使用了2.6中的新特性,但不是2.5中的新特性),完全可能不能在2.5(或以前的版本)中运行。您一定会看到,避免这种情况的唯一方法就是永远不要在新版本的中添加任何新特性--这是一个相当可怕的补救措施!

因此,我不建议您在本地的GAE开发中使用2.6,因为您知道生产版本将使用2.5。为什么不从python.org下载并安装Python2.5(如果您是在linux上,或者您的Linux发行版的特定代码库),并指示您的GAE SDK使用该版本,而不是2.6?这会让你的生活变得更轻松!

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2493072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档