Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有关错误消息的帮助_Python_Django_Google App Engine - Fatal编程技术网

Python 有关错误消息的帮助

Python 有关错误消息的帮助,python,django,google-app-engine,Python,Django,Google App Engine,有一条错误消息我无法理解,因为我看不到代码在哪里调用它。将用户对象与Google app engine一起使用dev\u appserver时会出现此对话框。你能告诉我这是什么意思吗 ERROR 2011-07-15 15:01:07,664 __init__.py:463] 'User' object has no attribute '_User__email' Traceback (most recent call last): File "/media/Lexar/projec

有一条错误消息我无法理解,因为我看不到代码在哪里调用它。将用户对象与Google app engine一起使用
dev\u appserver
时会出现此对话框。你能告诉我这是什么意思吗

ERROR    2011-07-15 15:01:07,664 __init__.py:463] 'User' object has no attribute '_User__email'
Traceback (most recent call last):
  File "/media/Lexar/projects/google/appengine/ext/webapp/__init__.py", line 700, in __call__
    handler.get(*groups)
  File "/media/Lexar/projects/myproject/i18n.py", line 313, in get
    self.response.out.write(template.render(path, template_values))
  File "/media/Lexar/projects/google/appengine/ext/webapp/template.py", line 73, in render
    return t.render(Context(template_dict))
  File "/media/Lexar/projects/google/appengine/ext/webapp/template.py", line 115, in wrap_render
    return orig_render(context)
  File "/media/Lexar/projects/lib/django_1_2/django/template/__init__.py", line 173, in render
    return self._render(context)
  File "/media/Lexar/projects/lib/django_1_2/django/template/__init__.py", line 167, in _render
    return self.nodelist.render(context)
  File "/media/Lexar/projects/lib/django_1_2/django/template/__init__.py", line 796, in render
    bits.append(self.render_node(node, context))
  File "/media/Lexar/projects/lib/django_1_2/django/template/__init__.py", line 809, in render_node
    return node.render(context)
  File "/media/Lexar/projects/lib/django_1_2/django/template/loader_tags.py", line 139, in render
    return self.template.render(context)
  File "/media/Lexar/projects/lib/django_1_2/django/template/__init__.py", line 173, in render
    return self._render(context)
  File "/media/Lexar/projects/lib/django_1_2/django/template/__init__.py", line 167, in _render
    return self.nodelist.render(context)
  File "/media/Lexar/projects/lib/django_1_2/django/template/__init__.py", line 796, in render
    bits.append(self.render_node(node, context))
  File "/media/Lexar/projects/lib/django_1_2/django/template/__init__.py", line 809, in render_node
    return node.render(context)
  File "/media/Lexar/projects/lib/django_1_2/django/template/defaulttags.py", line 258, in render
    return self.nodelist_true.render(context)
  File "/media/Lexar/projects/lib/django_1_2/django/template/__init__.py", line 796, in render
    bits.append(self.render_node(node, context))
  File "/media/Lexar/projects/lib/django_1_2/django/template/__init__.py", line 809, in render_node
    return node.render(context)
  File "/media/Lexar/projects/lib/django_1_2/django/template/__init__.py", line 849, in render
    return _render_value_in_context(output, context)
  File "/media/Lexar/projects/lib/django_1_2/django/template/__init__.py", line 829, in _render_value_in_context
    value = force_unicode(value)
  File "/media/Lexar/projects/lib/django_1_2/django/utils/encoding.py", line 66, in force_unicode
    s = unicode(s)
  File "/media/Lexar/projects/google/appengine/api/users.py", line 188, in __unicode__
    return unicode(self.nickname())
  File "/media/Lexar/projects/google/appengine/api/users.py", line 152, in nickname
    if (self.__email and self.__auth_domain and
AttributeError: 'User' object has no attribute '_User__email'
编辑:删除此代码时,错误消失:

'user\u url':users.create\u logout\u url(self.request.uri)if users.get\u current\u user()else'login','user':users.get\u current\u user(),

所以假设我在使用User对象时犯了一些错误

更新:这似乎与我申请的monkeypatch有关。删除此部分将删除错误,因此我想知道是否仍然需要此修补程序。据报道

def _user_init(self, email=None, _auth_domain=None,
             _user_id=None, federated_identity=None, federated_provider=None,
             _strict_mode=True):

  if not _auth_domain:
    _auth_domain = os.environ.get('AUTH_DOMAIN')
  assert _auth_domain

  if email is None and federated_identity is None:
    email = os.environ.get('USER_EMAIL', email)
    _user_id = os.environ.get('USER_ID', _user_id)
    federated_identity = os.environ.get('FEDERATED_IDENTITY',
                                        federated_identity)
    federated_provider = os.environ.get('FEDERATED_PROVIDER',
                                        federated_provider)

  if not email and not federated_identity and _strict_mode:
    raise UserNotFoundError

  self.__email = email
  self.__federated_identity = federated_identity
  self.__federated_provider = federated_provider
  self.__auth_domain = _auth_domain
  self.__user_id = _user_id or None

users.User.__init__ = _user_init
monkeypatch来自的相关线程

我猜您的错误是在导入某个模块时发生的:

ERROR    2011-07-15 15:01:07,664 __init__.py:463] 'User' object has no attribute '_User__email'
\uuuu init\uuuuu.py
是将目录定义为模块包的文件

您可以查找包含
用户
对象的行#463,或者有选择地删除导入以了解哪个包出了故障


我想,为了修复它,您需要确保当
用户
对象确实有
\u用户\u电子邮件
(这是
\u电子邮件
)属性时,但不知道如何进行产生错误的调用,很难说…

仅供参考,
\u User\u email
属性是由python根据
用户的定义生成的。\u email
。如果我不使用User对象,错误就会消失,即如果我使用User对象进行注释,错误就会消失:
..User\u url':users。如果用户,则创建\u logout\u url(self.request.uri)。获取\u current\u User()否则“login”,“用户”:users.get_current_user(),…
@senderle-很好,我直接在答案中包含了它。我对你更新中的信息感到困惑。这个补丁似乎总是给
用户分配一个值。
电子邮件(=
用户.\u用户\uu电子邮件
),所以我很惊讶没有它你会得到一个
用户
对象。有一分钟,我在想,你是否可以用错误的方式应用补丁,但是移除它不应该解决问题。。。确实令人费解…:-/我也对代码的作用以及我是否应该保留它感到困惑。我不理解代码,我只是需要粘贴,现在我不知道是否要再次使用它,因为SDK可能已经解决了这个问题。我的理念是,如果代码通过了它设计的测试,而补丁没有解决安全问题,我就永远不会使用补丁。原因是,有时补丁会微妙地影响代码其他部分的工作(对您来说似乎就是这样),并且您很容易在升级到不再需要补丁的主软件版本时出现代码中断。这是我喜欢测试驱动开发的众多原因之一,顺便说一句:)谢谢mac的见解。我注释掉了以前用来处理所谓损坏的userproperty的旧补丁,据报道这是由于nvironment中的一个bug造成的。现在SDK升级似乎已经解决了这个问题,一切似乎又恢复了正常运行。你可以看看我的网站我也保持代码开源: