1

これは、 Google App Engine と Django のサポートに関するフォローアップの質問です。

このチュートリアルは空のプロジェクトではうまく機能しますが、既存の Django アプリを Google App Engine にデプロイしようとすると、エラーがスローされ始めます。

Traceback (most recent call last):
  File "/python27_runtime/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 223, in Handle
    result = handler(dict(self._environ), self._StartResponse)
  File "/python27_runtime/python27_lib/versions/third_party/django-1.4/django/core/handlers/wsgi.py", line 219, in __call__
    self.load_middleware()
  File "/python27_runtime/python27_lib/versions/third_party/django-1.4/django/core/handlers/base.py", line 39, in load_middleware
    for middleware_path in settings.MIDDLEWARE_CLASSES:
  File "/python27_runtime/python27_lib/versions/third_party/django-1.4/django/utils/functional.py", line 184, in inner
    self._setup()
  File "/python27_runtime/python27_lib/versions/third_party/django-1.4/django/conf/__init__.py", line 40, in _setup
    raise ImportError("Settings cannot be imported, because environment variable %s is undefined." % ENVIRONMENT_VARIABLE)
ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.

そして、関連する可能性のある2番目:

Traceback (most recent call last):
  File "/python27_runtime/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 223, in Handle
    result = handler(dict(self._environ), self._StartResponse)
  File "/python27_runtime/python27_lib/versions/third_party/django-1.4/django/core/handlers/wsgi.py", line 219, in __call__
    self.load_middleware()
  File "/python27_runtime/python27_lib/versions/third_party/django-1.4/django/core/handlers/base.py", line 39, in load_middleware
    for middleware_path in settings.MIDDLEWARE_CLASSES:
  File "/python27_runtime/python27_lib/versions/third_party/django-1.4/django/utils/functional.py", line 184, in inner
    self._setup()
  File "/python27_runtime/python27_lib/versions/third_party/django-1.4/django/conf/__init__.py", line 42, in _setup
    self._wrapped = Settings(settings_module)
  File "/python27_runtime/python27_lib/versions/third_party/django-1.4/django/conf/__init__.py", line 95, in __init__
    raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))
ImportError: Could not import settings 'settings' (Is it on sys.path?): No module named settings

チュートリアルに従って settings.py を変更しました。アプリは問題なくデプロイされ、syncdb も機能します。データベースと必要なすべてのテーブルが配置されています。

ログに示されているエラー メッセージへの参照を見つけましたが、提案された修正は役に立ちませんでした。

これを引き起こしている可能性のあるアイデアはありますか?

編集:

このすでに長い質問を短くするために、以前に投稿されたwsgi.pyファイルを削除しました。私はこの問題とは何の関係もありませんでした。

編集2:

私は小さな改善をしたと思います.GAEは今不平を言っています:

ImportError: No module named properties

app.yaml ファイルにエントリがない可能性があると思いますが、それがどのファイルであるかはわかりません。欠落しているモジュールに関する参照をいくつか見つけましたが、このエラーメッセージを反映するものはありません...

4

1 に答える 1

1

多くの試行錯誤の末、部分的ではありますが、なんとかこれを解決することができました。

私はPyCharm(まだ)既存のプロジェクトを展開することができませんでした。project 2GAEでバージョンを実行することに熱心だったので、別のアプローチを採用し、ローカルマシンで新しい空のDjangoプロジェクト()を作成しました。

私は最初に、このチュートリアルを使用して空のプロジェクトをデプロイしましたが、これは問題なく実行されました。models.py次に、既存のPyCharmプロジェクトからファイルをコピーし、ファイルを使用するproject 2というアプリを追加しました。GAEが私のアプリが見つからないと不平を言い続けたため、最初はこれがうまくいきませんでした。それをいじった後、それは私の管理者に突然現れました。最初の問題の原因はわかりませんが、現在は機能しています。propertiesmodels.pyproperties

私にとって成功するために重要なこと:

私はsettings.pyの一番上に以下を追加しました:

import os
ROOT_PATH = os.path.dirname(__file__)

STATIC_ROOT...次に、デフォルトを次のように置き換えました。

STATIC_ROOT = ROOT_PATH + os.sep + 'static'

それから私は走った:

python manage.py collectstatic

のディレクトリからproject 2。これにより、Django管理者が使用する必要な静的ファイル(画像ファイル、cssファイルなど)が収集されます。

そのため、現在、GAEで実行されている元のプロジェクトの簡略版があります。足りないもの:

  • grappelliよりスタイルの高い管理インターフェースに使用された元のプロジェクト。これがGAEで実行されるかどうかはわかりません。編集:GAEにGrappelliをデプロイするのはかなり簡単です。Grappelliパッケージをプロジェクトディレクトリにコピーして実行するだけmanage.py collectstaticです。また、ドキュメントに従ってgrappelliURLを追加します。再デプロイします。終わり。

  • templated_email元のプロジェクトでは、アプリからテンプレート化されたメールを送信するために呼び出されるモジュールを使用していますproperties。同じgrappelli:これがGAEでサポートされているかどうかはわかりません。うまくいけば、それは私の特定のアプリにとって重要なので、GAEで実行されます。編集:私はtemplated_emailを時代遅れにし、GAEメールシステムに接続できるようにするこの小さな宝石にぶつかりました。

正直なところ、このアプローチは、DjangoとGAEをすぐにサポートするPyCharmの利点を部分的に否定します。それを稼働させるには、おそらく追加の調査と調整が必要になります。

上記に関するコメントや洞察は明らかにありがたいです!

于 2013-01-07T14:22:26.497 に答える