Dotcloud上的Django管理命令Cron

Dotcloud上的Django管理命令Cron,cron,pythonpath,dotcloud,django-manage.py,Cron,Pythonpath,Dotcloud,Django Manage.py,我正在尝试运行一个cron来运行一个定制的Django管理命令。我正在运行DotCloud 当cron运行时,出现以下错误: Traceback (most recent call last): File "./manage.py", line 2, in <module> from django.core.management import execute_manager ImportError: No module named django.core.management py

我正在尝试运行一个cron来运行一个定制的Django管理命令。我正在运行DotCloud

当cron运行时,出现以下错误:

Traceback (most recent call last):
File "./manage.py", line 2, in <module>
from django.core.management import execute_manager
ImportError: No module named django.core.management
py2.6.egg:/home/dotcloud/current:/home/dotcloud/env/lib/python2.6/plat-linux2:/home/dotcloud/env/lib/python2.6/lib-tk:/home/dotcloud/env/lib/python2.6/lib-old:/home/dotcloud/env/lib/python2.6/lib-dynload:/usr/lib/lib/python2.6:/usr/lib/lib64/python2.6:/usr/lib/linthn2/lib/lib/libython2.6/lib-tk:/home/dotcloud/env/lib/python2.6/site包:/usr/local/lib/python2.6/dist包/virtualenv-1.6.1-py2.6.egg:/usr/local/lib/python2.6/site包:/usr/local/lib/python2.6/dist包:/usr/lib/python2.6/dist包:/usr/lib/python2.6/python2.6

错误仍在发生,我不确定发生了什么。任何建议都将不胜感激


谢谢。

你说得对:cron作业在“裸”环境中运行

而不是这样做:

* * * * * /home/dotcloud/current/myapp/manage.py args...
您应该这样做:

* * * * * /home/dotcloud/env/bin/python /home/dotcloud/current/myapp/manage.py args...

运行
~/env/bin
中包含的
python
解释器将自动设置正确的环境。

这让我更进一步。如果我这样做,我会得到一个错误,我试图运行的自定义命令不存在。如果我用我的外壳运行它,它工作得很好。我已经读到您必须从manage.py目录本身执行命令,但我不确定。想法?@user523513 Django管理命令将运行良好,如果您按照jpetazzo所说的做,并使用python和manage.py的完全限定路径,那么它将不起作用的唯一原因是如果管理命令出于某种原因使用当前运行的目录,可能会查找当前目录并删除文件,或者类似的。这不是一个好的做法,所以大多数管理命令都不这样做。我遇到了与@user523513完全相同的问题。这不是管理命令试图使用当前正在运行的目录的情况。Django一开始找不到管理命令是一个问题。我已经在使用virtualenv的python解释器了,我得到的只是“未知命令”。你能用你的新错误更新这个问题吗?现在可以发布crontab条目的内容了吗?
* * * * * /home/dotcloud/env/bin/python /home/dotcloud/current/myapp/manage.py args...