使用虚拟环境中的变量,我正在设置芹菜来运行守护进程。但是当我运行$ sudo /etc/init.d/celeryd start时,我得到了Unknown command: 'celeryd_multi' Type 'manage.py help' for usage.
我提出了以下几点:
CELERYD_CHDIR="/home/myuser/projects/myproject“ENV_PYTHON="/home/myuser/.virtualenvs/myproject/bin/python”CELERYD_MULTI="$ENV_PYTHON $CELERYD_CHDIR/manage.py celeryd_multi“
当我从命令行运行$ /home/myuser/.virtualenvs/myproject/bin/python /home/myuser/projects/myproject/manage.py celeryd_multi时,它工作得很好。
有什么想法吗?我很乐意发布您需要的任何其他代码:)
谢谢!
发布于 2012-07-12 00:41:05
这里的问题是,当您以用户身份运行它时,virtualenv已经为您的用户"myuser“激活了适当的环境,它从/home/myuser/..virtualenvs/myproject/.
当您执行sudo /etc/init.d/celeryd启动时,您将芹菜作为根启动,它可能没有在/ root /..virtualenvs/如果存在这样的东西中激活虚拟and,因此它在/usr/lib/.中查找python包。默认的python在哪里,因此哪里没有安装您的芹菜。
你的选择是:
su - myuser -c /bin/sh /home/myuser/.virtualenvs/myproject/bin/celeryd脚本,以myuser的身份从init.d调用它。思想:
发布于 2012-09-24 18:21:25
也许你只是设置了一个错误的DJANGO_SETTINGS_MODULE:
尝试:DJANGO_SETTINGS_MODULE=“设置”<-> DJANGO_SETTINGS_MODULE="project.settings“
https://stackoverflow.com/questions/11443245
复制相似问题