0

私は開発環境と本番環境を切り替えるためにmanage.py異なる設定を使用していません。これは、「2 Scoops of Django」の Django docs と pydanny の両方で提案されています。DJANGO_SETTINGS_MODULEdjango-admin.py

私のプロジェクトは にあります/home/dotcloud/current/bipolar。私の設定は、/home/dotcloud/current/bipolar/bipolar/settings/dotcloud.pyDjango 1.5 ディレクトリ構造に従っています。DJANGO_SETTINGS_MODuLEに設定されdotcloud.ymlていますbipolar.settings.dotcloud

Dotcloud を実行するのに問題があります。サンプル チュートリアルに従うだけでは、既にスクリプトに a を追加するexport PYTHONPATH=/home/dotcloud/current/(hellodjango|bipolar):$PYTHONPATH必要がありpostinstallます。

スーパーバイザーを使用してセロリを起動すると、事態は非常に複雑になります。コマンドを実行しようとしていますdjango-admin.py celery worker。しかし、どのようにPYTHONPATHセットをにしようとしても/home/dotcloud/current/bipolar、それは拾われません。私は両方を試しました

command = "PYTHONPATH=/home/dotcloud/current/bipolar:$PYTHONPATH django-admin.py celery worker --loglevel=INFO -E"

environment=PYTHONPATH="/home/dotcloud/current/bipolar"

Supervisord.conf で無駄に。実行する前にパスを設定して、シェルスクリプトに移動しようとしました...postinstall結局、それはうまくいきます! また、シェルで実行する場合は機能しますが、マシンが展開されている場合は機能しません。

したがって、任意のヘルプが提案されています!

編集:それ以来、私は複数のことを試しました。両方とも正しいsys.pathとを設定するmanage.pyを追加しましたが、役に立ちDJANGO_SETTINGS_MODULEません。最後に、python-worker2 倍の失敗をした以外には何も達成していないサービスを追加しました (supervisord.conf は両方のサービスで読み取られますよね?)。

4

2 に答える 2

0

これが機能しない可能性があることはわかっていますが、試しましたか:

command = "cd /home/dotcloud/current/bipolar && django-admin.py celery worker --loglevel=INFO -E"
于 2013-03-14T05:20:39.587 に答える
0

ドキュメントが間違っていることがわかりました。directory = $HOME/current/に設定することはできませんsupervisord.conf。と交換すれ/home/dotcloud/current/ば準備完了です。

私はまだ仕事をすることができませんでしdjango-admin.pyた。virtualenv の外にある Python バイナリで呼び出されると想定しています。manage.py私は少しハッキーだと思います。より良い方法はありますか?

私の仕事supervisord.conf

[program:celery_beat]
directory = /home/dotcloud/current/bipolar/
stderr_logfile = /var/log/supervisor/%(program_name)s_error.log
stdout_logfile = /var/log/supervisor/%(program_name)s.log
command = /home/dotcloud/env/bin/python manage.py celery beat --loglevel=INFO

[program:celery_worker]
directory = /home/dotcloud/current/bipolar/
stderr_logfile = /var/log/supervisor/%(program_name)s_error.log
stdout_logfile = /var/log/supervisor/%(program_name)s.log
command = /home/dotcloud/env/bin/python manage.py celery worker -E --loglevel=INFO
于 2013-03-14T09:52:27.700 に答える