django-admin.py和在Dotcloud上修改PYTHONPATH的正确方法?

django-admin.py和在Dotcloud上修改PYTHONPATH的正确方法?,python,django,pythonpath,dotcloud,Python,Django,Pythonpath,Dotcloud,我没有一个manage.py,使用不同的设置在DJANGO\u设置\u模块和DJANGO admin.py之间切换开发和生产环境。这是Django docs和pydanny在“2勺Django”中提出的建议 我的项目位于/home/dotcloud/current/polaria。我的设置位于Django 1.5目录结构之后的/home/dotcloud/current/polaria/polaria/settings/dotcloud.pyDJANGO\u SETTINGS\u模块在dotcl

我没有一个
manage.py
,使用不同的设置在
DJANGO\u设置\u模块
DJANGO admin.py
之间切换开发和生产环境。这是Django docs和pydanny在“2勺Django”中提出的建议

我的项目位于
/home/dotcloud/current/polaria
。我的设置位于Django 1.5目录结构之后的
/home/dotcloud/current/polaria/polaria/settings/dotcloud.py
DJANGO\u SETTINGS\u模块
dotcloud.yml
中设置为
bipolar.SETTINGS.dotcloud

我在运行Dotcloud时遇到问题。当我刚刚学习示例教程时,我已经必须向
安装后
脚本添加
导出PYTHONPATH=/home/dotcloud/current/(hellodjango | bipolar):$PYTHONPATH

当使用主管推出芹菜时,事情变得非常棘手。我正在尝试运行命令django-admin.py芹菜工人
。但无论我如何尝试将我的
PYTHONPATH
设置为
/home/dotcloud/current/polaria
,它都不会被拾取。我两个都试过了

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

在supervisord.conf中没有任何结果。我尝试过将内容移动到shell脚本,在运行它之前设置路径。。。毕竟,这对安装后的
是有效的!在shell上运行它时,它确实可以工作,但在部署机器时,它不工作

因此,建议您提供任何帮助


编辑:从那以后,我尝试了多种方法。我重新添加了一个manage.py,它设置了正确的
sys.path
DJANGO\u设置\u模块
,但都无效。最后,我添加了一个
python worker
服务,除了失败两倍之外,它什么也没做(这两个服务上的supervisord.conf都会被读取,是吗?)

我知道这可能不起作用,但您尝试过:

command = "cd /home/dotcloud/current/bipolar && django-admin.py celery worker --loglevel=INFO -E"
结果证明他们错了。无法在
supervisord.conf
中设置
directory=$HOME/current/
。用
/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

没有。我没有提到,在
supervisord.conf
中,我还设置了
目录=$HOME/current/polaria/
。但是我现在试过了,它给了我:
2013-03-14 08:03:35217 INFO-spawnerr:找不到命令'cd/home/dotcloud/current/polaria&&django-admin.py芹菜工人--loglevel=INFO-E'
路径正确;在控制台中再次执行复制粘贴命令会导致导入错误:无法导入设置'bipolar.settings.dotcloud'
。但当我放入该目录中的python shell时,我可以很好地导入它。
[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