
我设置了以下内容:
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时,它运行正常.
有任何想法吗?我很乐意发布你需要的任何其他代码:)
谢谢!
解决方法 这里的问题是当你以用户身份运行它时,virtualenv已经为你的用户“myuser”激活了适当的环境,它从/home/myuser/.virtualenvs/myproject /中提取包.当您执行sudo /etc/init.d/celeryd start时,您将以root身份启动芹菜,如果这样的东西甚至存在,可能没有在/root/.virtualenvs/中激活virtualenv,因此它在/ usr中查找python包/ lib / …你的默认python是什么,因此你的芹菜没有安装.
您可以选择:
>在root用户下复制相同的virtualenv并像尝试使用sudo一样启动它
>保持virtualenv的位置,并在不使用init脚本的情况下以您的用户“myuser”(无sudo)启动celery.
>编写一个脚本,将su – myuser -c / bin / sh /home/myuser/.virtualenvs/myproject/bin/celeryd作为myuser从init.d调用它.
>在virtualenv之外安装主管,让它为你做脏工
思考:
>避免将root用于任何你不需要的东西.>如果您不需要芹菜来启动,那么这很好,可能包含在脚本中.>对我来说简单的Hackish,但如果你不想再投资30分钟来使用别的东西,那就有效.>强烈推荐可能是处理所有python启动需求的最佳方法.
总结以上是内存溢出为你收集整理的django – sudo /etc/init.d/celeryd start生成“未知命令:’celeryd_multi’”全部内容,希望文章能够帮你解决django – sudo /etc/init.d/celeryd start生成“未知命令:’celeryd_multi’”所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)