1

GAE 内で最も単純な django プロジェクトを実行する際に問題が発生しました。

実行後django-admin startproject myproj(Google SDK の django 1.4 を使用)、フォルダー階層は次のようになります。

+ myproj (プロジェクトのルートフォルダー)
  -manage.py
  + myproj (プロジェクト ファイルのサブ フォルダー)
    - __init__.py
    - 設定.py
    -urls.py
    -wsgi.py

次に、通常の app.yamlをルート フォルダー(manage.py と同じフォルダー) に追加します。

application: u-pavarotti
version: 1
runtime: python27
api_version: 1
threadsafe: true

libraries:
- name: django
  version: "1.4"

builtins:
- django_wsgi: on

syncdb、dbshel​​l、shell ... うまく機能します。manage.py runserver作品ファイルでも。ただし、実行しようとするとdev_appserver失敗します。私が得る例外は次のとおりです。

ImportError: Could not import settings 'settings'.

さて、google/appengine/ext/django/main (django_wsgi基本的に .* の URL ハンドラーを google.appengine.ext.django.main.app に設定する) を見ると、パイソンパス。しかし、何もしなくても、インポートするモジュールはmyproj.settings(myproj がパスにないため) です。

ここで、.../myproj/myproj (下のフォルダー) を PYTHONPATH に追加すると、開発マシン上のすべてが解決されますが、GAE デプロイメントの検索パスを制御できないため、このソリューションは機能しません。

すべてのファイルを移動することも、settings.py だけを myproj の上部に移動することも、app.yaml を下に移動することもできますが (ほぼ同じことです)、デフォルトで生成された settings.py からさまざまな変更を加える必要があります。行く方法。別の方法として、django.core.handlers.wsge.WSGIHandler をインスタンス化する独自のハンドラーを作成することもできます (古いチュートリアルではこれを行っていました)。これも、少なくともアプリの「組み込み」属性の作成者の意図に反するようです。ヤムル。

他の人がこの問題をどのように解決しているのか、そして何をするのが正しいのだろうか.

4

1 に答える 1