10

私の問題:

gunicornを WSGI HTTP サーバーとして使用すると、フォアマンは Django (wsgi?) アプリケーションを見つけられません。

アプリケーション構造:

私の Django アプリケーションでは、次のような構造になっています。

<git_repository_root>/
  <django_project_root>/
    <configuration_root>/

<git_repository_root>は、プロジェクト管理と展開に関連するもの ( requirements.txtProcfilefabfile.pyなど)が含まれています。

<django_project_root>は、私の Django アプリとアプリケーション ロジックが含まれています。

最後に、 に<configuration_root>は mysettings.pyとが含まれていwsgi.pyます。

私が試したこと:

Procfileは次のようになります ( Heroku Docsによると):

web: gunicorn myapp.wsgi

foreman startこのプロジェクト レイアウトで実行すると、エラーが発生します。

ImportError: Import by filename is not supported.

機能するもの:

Procfile を から に移動する<git_repository_root>と、<git_repository_root>ローカルで動作します。Heroku にプッシュした後 (注: Herokuには が<git_repository_root>表示されます)、ワーカーをスケーリングしたり、プロセスを追加したりできません。私は以下を取得します:

Scaling web dynos... failed
 !    No such process type web defined in Procfile.

とにかく欲しいと思っProcfileてい<git_repository_root>ますが、なぜうまくいかないのですか?また、次のように変更してみProcfileました: web: gunicorn myapp/myapp.wsgi

しかし運がない。どんな助けでも大歓迎です!

4

2 に答える 2

4

エントリをProcfilebash コマンドのように扱います。cdサーバーにログインして実行でき<django_project_root>ます。

たとえば、Procfile(これは にあるはずです<git_repository_root>) は次のようになります。

web: cd <django_project_root> && gunicorn 
     --env DJANGO_SETTINGS_MODULE=<configuration_root>.settings 
     <configuration_root>.wsgi
于 2015-06-19T13:19:34.133 に答える
1

Procfile背中を動かして<git_repository_root>使用します:

web: gunicorn <django_project_root>.myapp:myapp

最後の「myapp」をアプリのクラス名に置き換えます。おそらく、実際には「myapp」です。

app...そしてエラーメッセージを読んでください:ファイル名(myapp.wsgi)でワーカークラス()をインポートできないことを伝えているので、もちろんdirname/myapp.wsgiうまくいきません。module:classPython構文が必要です。

于 2013-08-07T05:16:13.577 に答える