我没有manage.py
并使用DJANGO_SETTINGS_MODULE
和django-admin.py
的不同设置来在开发和生产环境之间切换。 Django docs和pydanny在Django" 2 Scoops of Django"中提出了这一点。
我的项目位于/home/dotcloud/current/bipolar
。我的设置在/home/dotcloud/current/bipolar/bipolar/settings/dotcloud.py
之后,遵循Django 1.5目录结构。 DJANGO_SETTINGS_MODuLE
中的dotcloud.yml
设置为bipolar.settings.dotcloud
。
我无法运行Dotcloud。当我只是按照示例教程时,我必须在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中无济于事。我已经尝试将内容移动到shell脚本,在运行它之前设置路径......毕竟这适用于postinstall
!它在shell上运行时确实有效,但在部署机器时它不起作用。
所以建议任何帮助!
编辑:我已经尝试了很多东西。我重新添加了一个既设置了正确的sys.path
又设置了DJANGO_SETTINGS_MODULE
的manage.py,但无济于事。最后,我添加了一个python-worker
服务,除了失败两倍之外什么也没有做到(supervisord.conf读取了两个服务,是吧?)。
答案 0 :(得分:0)
我知道这可能不起作用,但你试过了吗?
command = "cd /home/dotcloud/current/bipolar && django-admin.py celery worker --loglevel=INFO -E"
答案 1 :(得分:0)
结果the docs错了。无法在directory = $HOME/current/
中设置supervisord.conf
。将其替换为/home/dotcloud/current/
,你就可以了。
我仍然无法让django-admin.py
工作;我假设它在virtualenv之外用Python二进制文件调用。我发现manage.py
有点hacky;有更好的方法吗?
我的工作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