2012-05-04 3 views
2

Я пытаюсь запустить cron для запуска пользовательской команды управления Django. Я бегу по DotCloud.Команда управления Django Cron on Dotcloud

При запуске хрон, я получаю следующее сообщение об ошибке:

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 

Я думаю, что это происходит потому, что хроны работают в голой среде, поэтому я попытался установить вручную 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:/Главная/dotcloud/ток: /home/dotcloud/env/lib/python2.6:/Главная/dotcloud/окр/Библиотека/python2 0,6/Плат-linux2: /home/dotcloud/env/lib/python2.6/lib-tk: /home/dotcloud/env/lib/python2.6/lib-old:/Главная/dotcloud/окр/Библиотека/python2.6/Lib-dynload: /usr/lib/python2.6: /usr/lib64/python2.6: /usr/lib/python2.6/plat-linux2: /usr/lib/python2.6/lib- тк: /usr/lib64/python2.6/lib-tk: /home/dotcloud/env/lib/python2.6/site-packages: /usr/local/lib/python2.6/dist-packages/virtualenv-1.6 0,1-py2.6.egg: /usr/local/lib/python2.6/site-packages: /usr/local/lib/python2.6/dist-packages: /usr/lib/python2.6/dist- пакеты: /usr/lib/pymodules/python2.6

Ошибка по-прежнему возникает и я не уверен, что происходит. Любые советы очень ценятся.

Спасибо.

+0

Можете ли вы обновить вопрос своей новой ошибкой? Можете ли вы опубликовать то, что у вас есть для входа crontab? –

ответ

7

Вы правы: задания cron работают в «голом» окружении.

Вместо того, чтобы сделать это:

* * * * * /home/dotcloud/current/myapp/manage.py args... 

Вы должны сделать это:

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

Запуск python интерпретатора, содержащимся в ~/env/bin будет автоматически установит правильные среды.

+0

Это делает меня еще на один шаг. Если я это сделаю, я получаю сообщение об ошибке, что пользовательская команда, которую я пытаюсь запустить, не существует. Если я запустил его из своей оболочки, он отлично работает. Я прочитал, что вам нужно выполнить команду из самого каталога manage.py, но я не уверен. Мысли? – user523513

+0

@ user523513 Команды управления Django будут работать нормально, если вы сделаете то, что сказал jpetazzo, и используйте полный путь к python и manage.py. Единственная причина, по которой это не сработает, - это если команда управления использует текущую текущую директорию по какой-либо причине , возможно, просматривая текущий каталог и удаляя файлы, или что-то в этом роде. Это не очень хорошая практика, поэтому большинство команд управления этого не делают. –

+0

У меня такая же проблема, как и @ user523513. Это не относится к команде управления, пытающейся использовать текущий текущий каталог. Это проблема с тем, что Django не находит команду управления в первую очередь. Я уже использую интерпретатор python для virtualenv, и все, что я получаю, это «Неизвестная команда». – Kal

Смежные вопросы