2009-07-09 22 views
3

私はpinaxを使用してサイトを開発しようとしています。 djapianを使用してモデルにインデックスを付ける私は"manage.py index"をcronジョブとして実行しようとしていましたが、ピンアックスエラーが続いています。 "エラー:通知されたモジュールがありません"。しかし、私がシェルから実行すると、タスクは正しく実行されます。次のように私のcrontabの定義は次のとおりです。
django "manage.py index"がcronジョブとして実行されません

SHELL=/bin/sh 
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/mypath/test_project 

# m h dom mon dow user command 
*/1 * * * * root python /root/mypath/test_project/manage.py index >>/tmp/backup.log 2>&1 

私は、このエラーが発生します、なぜ誰もが説明できますか?

答えて

6

PYTHONPATHが適切に設定されていないことが原因で、おそらく "通知"モジュールへのパスが含まれている可能性があります。また、DJANGO_SETTINGS_MODULEパスが環境内にまだ設定されていない場合は、設定する必要があります。 ARSが示唆したように

#!/bin/sh 
DJANGO_SETTINGS_MODULE=mysettings 
export DJANGO_SETTINGS_MODULE 

PYTHONPATH=/path/to/python_libs:/path/to/my_django_apps 
export PYTHONPATH 

/path/to/python /path/to/my_django_script 
+0

返信ありがとうございます。あなたの提案に基づいて、私は問題を解決しました。 – kartikq

0

は、cronのは、あなたが行うよりも、環境変数の完全に異なるセットで実行されます。

は、ここで私は私自身のジャンゴベースのcronタスクをラップするために使用するシェルスクリプトです。これを修正する最も簡単な方法は、彼が投稿したものと同様のスクリプトを使用することです。

関連する問題