我正在尝试运行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我认为这是因为cron是在一个空环境中运行的,所以我尝试在同一个cron中手动设置PYTHONPATH。以下是该命令...
PYTHONPATH=/home/dotcloud/env/lib/python2.6/site-packages/setuptools-0.6c11-
py2.6.egg:/home/dotcloud/env/lib/python2.6/site-packages/pip-1.0.1- py2.6.egg:/home/dotcloud/current:/home/dotcloud/env/lib/python2.6:/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/python2.6:/usr/lib64/python2.6:/usr/lib/python2.6/plat-linux2:/usr/lib/python2.6/lib-tk:/usr/lib64/python2.6/lib-tk:/home/dotcloud/env/lib/python2.6/site-packages:/usr/local/lib/python2.6/dist-packages/virtualenv-1.6.1-py2.6.egg:/usr/local/lib/python2.6/site-packages:/usr/local/lib/python2.6/dist-packages:/usr/lib/python2.6/dist-packages:/usr/lib/pymodules/python2.6
错误仍在发生,我不确定发生了什么。任何建议都是非常感谢的。
谢谢。
发布于 2012-05-04 11:37:34
您是对的: cron作业在“空”环境中运行。
而不是这样做:
* * * * * /home/dotcloud/current/myapp/manage.py args...您应该这样做:
* * * * * /home/dotcloud/env/bin/python /home/dotcloud/current/myapp/manage.py args...运行~/env/bin中包含的python解释器将自动设置正确的环境。
https://stackoverflow.com/questions/10442195
复制相似问题