Linux cron找不到Django管理命令

Linux cron找不到Django管理命令,linux,django,Linux,Django,我制作了一个管理应用程序,形象地称为update。从命令行可以很好地执行以下操作: ./manage.py update /full/path/manage.py update 但当我使用以下cron命令时: 00 */3 * * * /websites/bnc/manage.py update >/dev/null 它给我发电子邮件告诉我这个错误: 未知命令:“更新” 键入“manage.py help”了解用法 它闻起来像是路径问题,但我不知道怎么做,因为我可以从任何地方手动调用它

我制作了一个管理应用程序,形象地称为
update
。从命令行可以很好地执行以下操作:

./manage.py update
/full/path/manage.py update
但当我使用以下cron命令时:

00 */3 * * * /websites/bnc/manage.py update >/dev/null
它给我发电子邮件告诉我这个错误:

未知命令:“更新”

键入“manage.py help”了解用法


它闻起来像是路径问题,但我不知道怎么做,因为我可以从任何地方手动调用它。知道这里发生了什么吗?

环境可能不一样,因此没有设置PYTHONPATH/PATH。它可能找不到importdjango(或python/lib/site包)。

我正在做类似的事情。尝试在crontab中使用
PYTHONPATH=…

在前面添加
/websites/bnc/manage.py
,我遇到了同样的问题并找到了解决方案,您需要在正确的目录中运行Django管理命令

对于您的示例,您需要更新crontab,如下所示:

00 */3 * * * cd /websites/bnc && ./manage.py update >/dev/null

工作起来很有魅力。我不知道为什么,但将此目录添加到命令中的PYTHONPATH对我不起作用,但上面的操作非常有效。

如何找到用户的PYTHONPATH?我尝试了
echo$PYTHONPATH
,但它返回了一个空行。您可以从python交互提示中找到python/django的位置:>>>导入django>>>打印django.\uuuu文件。这应该给你一个提示。但不确定cron和PYTHONPATH设置的详细信息。也许可以编写一个小脚本来设置env,然后运行manage.py更新,而不是直接运行它。您可以使用'env'命令IIRC测试脚本。如何找到用户的PYTHONPATH?我尝试了echo$PYTHONPATH,但它返回了一个空行。