2

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

エラーはまだ発生しており、何が起こっているのかわかりません。どんなアドバイスも大歓迎です。

ありがとう。

4

1 に答える 1

7

その通りです。cron ジョブは「ベア」環境で実行されます。

これを行う代わりに:

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

これを行う必要があります:

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

pythonに含まれているインタープリターを実行すると~/env/bin、正しい環境が自動的にセットアップされます。

于 2012-05-04T03:37:33.933 に答える