2

Gunicornを使用してHerokuに問題なくデプロイするために使用したDjangoアプリを実行しています。つまり、私は走ることができたということです

foreman start

私のローカルホストで、アプリケーションが本番環境で動作するかどうかを理解できます。私は最近、プロジェクトのすべてのアプリケーションを「applications」という名前のサブフォルダーに移動することを決定しました。これは、他のファイルの中で私のDJANGO_SETTINGS_MODULE環境変数を編集することを意味しました。これを行った後、ローカルサーバーを起動して実行するまで、フォアマンとgunicornを試してみました。この時点で、本番環境にデプロイしました。言うまでもなく、エラーが発生しました。

Running `gunicorn --workers=4 applications.rocketlistings.wsgi -b 0.0.0.0: -k gevent` attached to terminal... up, run.8052
Traceback (most recent call last):
  File "/app/.heroku/python/bin/gunicorn", line 9, in <module>
    load_entry_point('gunicorn==0.17.2', 'console_scripts', 'gunicorn')()
  File "/app/.heroku/python/lib/python2.7/site-packages/distribute-0.6.34-py2.7.egg/pkg_resources.py", line 343, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/app/.heroku/python/lib/python2.7/site-packages/distribute-0.6.34-py2.7.egg/pkg_resources.py", line 2307, in load_entry_point
    return ep.load()
  File "/app/.heroku/python/lib/python2.7/site-packages/distribute-0.6.34-py2.7.egg/pkg_resources.py", line 2013, in load
    entry = __import__(self.module_name, globals(),globals(), ['__name__'])
ImportError: No module named app.wsgiapp

何が間違っているのかわかりません。また、リモートセットアップがあいまいなherokuが実行されているため、状況をデバッグするのは非常に困難です。このエラーについて説明している他のスレッドは、これがパスの問題であることを示唆しています。これは非常にもっともらしいように聞こえますが、アプリケーションフォルダーにinit .pyファイルがあり、すべてがローカルで機能していることを考えると、パスのどこが間違っているのか考えられません。

とにかく私のプロダクションパス/pythonpathは次のとおりです。

Running `echo $PATH` attached to terminal... up, run.2583
/app/.heroku/python/bin:/usr/local/bin:/usr/bin:/bin

Running `echo $PYTHONPATH` attached to terminal... up, run.8026
/app/

前もって感謝します!

4

1 に答える 1

3

これは、GunicornがPYTHONPATHで「app」という別のモジュールを見つけたときに発生することがあります。PYTHONPATHを偽の値に設定すると、問題が解決します。

$ heroku config:set PYTHONPATH=fakepath

https://github.com/heroku/heroku-buildpack-python/wiki/Troubleshooting#no-module-named-appwsgiapp

于 2013-03-24T22:05:07.570 に答える