4

所以我刚升级到小牛队,突然遇到各种错误:

大多是这样的:

Cannot define property using reserved word 'requests'.

我们在其他属性中也看到了这一点。它们实际上都不是保留字,它们都被定义一次(所以这不是因为它们是同一对象上的重复属性或通过 ReferenceProperty 字段)

我们没有改变任何东西(除了操作系统升级)。我们使用的是来自应用引擎日志的 python2.7:Python command: /usr/bin/python2.7并且我们在 app.yaml 中指定了 python27

这个应用程序(具有相同的属性名称)已经存在多年,所以不确定发生了什么。我曾经尝试在 linux 机器上设置它,但当时就放弃了。然而,这一次,它是我的主要开发机器。

有任何想法吗?

更长的错误:

File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/db/__init__.py", line 515, in __init__
_initialize_properties(cls, name, bases, dct)
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/db/__init__.py", line 425, in _initialize_properties
check_reserved_word(attr_name)
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/db/__init__.py", line 319, in check_reserved_word
"definition." % locals())
ReservedWordError: Cannot define property using reserved word 'requests'.
  If you would like to use this name in the datastore consider using a different
  name like requests_ and adding name='requests' to the parameter list of the
  property definition.

更新:降级到 2.7.2 似乎可以解决所有问题。

4

1 回答 1

0

您应该查看“check_reserved_word”的来源。
我抓住了最新的并查看了 python/google/appengine/ext/db/_ init _py

并不是requests是Python的保留字,而是requests现在由GoogleAppEngine保留。

if attr_name in _RESERVED_WORDS or attr_name in dir(Model):
  raise ReservedWordError(
    "Cannot define property using reserved word '%(attr_name)s'. "
    "If you would like to use this name in the datastore consider "
    "using a different name like %(attr_name)s_ and adding "
    "name='%(attr_name)s' to the parameter list of the property "
    "definition." % locals())

如果您对 AppEngine 如何使用“请求”感到好奇,您应该查看_RESERVED_WORDS的设置位置以及dir(Model)的内容。

于 2013-10-30T06:20:35.550 回答