8

リポジトリをherokuマスターにプッシュした後、このエラー([Errno 2]そのようなファイルまたはディレクトリはありません)が発生します。これが私のログです。

2012-04-17T18:24:53+00:00 app[web.1]: python: can't open file '/test/project/manage.py': [Errno 2]     No such file or directory

2012-04-17T18:24:54+00:00 heroku[web.1]: Process exited with status 2

2012-04-17T18:24:54+00:00 heroku[web.1]: State changed from starting to crashed

2012-04-17T18:24:54+00:00 heroku[web.1]: State changed from crashed to created

2012-04-17T18:24:54+00:00 heroku[web.1]: State changed from created to starting

2012-04-17T18:24:57+00:00 heroku[web.1]: Starting process with command python /test/project/manage.py runserver 0.0.0.0:4473 --noreload 2012-04-17T18:24:57+00:00 app[web.1]: python: can't open file '/test/project/manage.py': [Errno 2] No such file or directory

私のProcfileは次のようになります。

web: python /test/project/manage.py runserver 0.0.0.0:$PORT --noreload

なぜファイルを開けないのかわかりません。開発サーバーを使用しているときは正常に開きます。何か案は?読んでくれてありがとう。

4

4 に答える 4

11

Procfileの現在の設定は、Herokuに存在しない絶対パス'/test/project/manage.py'を参照しています。'/ test /は、実行しているインスタンスのルートであり、正しくありません。最初にこれを相対パスに変更する必要があります。これはおそらく次のようになります。

web: python project/manage.py runserver 0.0.0.0:$PORT --noreload

これが機能しない場合は、次のコマンドを実行してプロジェクトの場所を調べることができます。

heroku run bash

これにより、ここから「/ app」に移動し、プロジェクトを開始するためのパスを確認できます。

最初のプッシュでプロセスを開始できなかった可能性があるため、Webプロセスをスケーリングする必要があります。次に、これを次の方法で実行できます。

heroku scale web=1
于 2012-04-18T16:24:43.923 に答える
1

をherokuにアタッチしlsて、ファイルシステムの実際の構造を調べることができます。

> heroku run ls /
Running ls / attached to terminal... up, run.1
app  dev  home  lib64       mnt   sbin  usr
bin  etc  lib   lost+found  proc  tmp   var

appアプリをディレクトリ内にラップする場合があります

于 2012-04-18T00:05:34.740 に答える
0

os.pathを使用してパスの要素を結合してみてください。ところで、ProcFileをworkerから読み取るように変更してみましたか?python hellodjango/manage.py

後で編集:

herokuをマスターにするには、次の3つのコマンドを実行してみてください。

  • pip install -r ./requirements.txt

  • foreman start

  • heroku create mempy-demo --stac=cedar

  • git push heroku master

次に、単純な「HelloWorld」をテストします。

$ curl mempy-demo.herokuapp.com
于 2012-04-18T00:10:52.683 に答える
0

このようなことを実行して、環境変数を変更できます(たとえば、エラーが発生した場所である場合は、wsgi.pyファイルに追加します)。

os.environ["DJANGO_SETTINGS_MODULE"] = "myblog.settings"                                                                
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myblog.settings")
于 2013-08-25T00:56:49.757 に答える