4

そのため、Mavericks にアップグレードしたところ、突然あらゆる種類のエラーが発生しました。

主に次のようなものです。

Cannot define property using reserved word 'requests'.

これは他のプロパティでも見られます。それらのどれも実際には予約語ではなく、すべて一度に定義されます (したがって、同じオブジェクトまたは ReferenceProperty フィールドを介してプロパティが重複しているからではありません)。

何も変更していません (OS のアップグレード以外)。アプリ エンジン ログからの 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 に答える