2010-02-14 83 views
1

我做了一個名爲update的管理應用程序。在命令行下做工精細:未找到cron的Django管理命令

./manage.py update 
/full/path/manage.py update 

但是,當我有以下幾點的cron命令:

00 */3 * * * /websites/bnc/manage.py update >/dev/null 

它的電子郵件我這個錯誤:

Unknown command: 'update'

Type 'manage.py help' for usage.

它聞起來像一個路徑問題,但我無法看到,因爲我可以從任何地方手動調用它。任何想法這裏發生了什麼?

回答

1

環境可能不一樣,所以沒有設置PYTHONPATH/PATH。它可能無法找到導入django(或python/lib/site-packages)。

+0

如何找到我的用戶的PYTHONPATH?我試過'echo $ PYTHONPATH',但它返回一個空行。 – Oli 2010-02-16 13:56:45

+0

你可以從python交互提示中找出python/django的位置:>>> import django >>> print django .__ file__。這應該給你一個提示。不知道cron和PYTHONPATH設置的細節。也許編寫一個設置env的小腳本,然後運行manage.py更新,而不是直接運行它。你可以用'env'命令,IIRC來測試你的腳本。 – Macke 2010-02-17 21:14:21

1

我正在做類似的事情。嘗試在你的crontab中使用/websites/bnc/manage.py作爲PYTHONPATH=...

+0

如何找到我的用戶的PYTHONPATH?我嘗試echo $ PYTHONPATH,但它返回一個空行。 – Oli 2010-02-16 16:18:24

5

我有同樣的確切問題,並找到了解決方案,你需要在int他正確的目錄下運行Django管理命令。

對於你的榜樣,你需要更新你的crontab像這樣:

00 */3 * * * cd /websites/bnc && ./manage.py update >/dev/null 

就像一個魅力。我不知道爲什麼,但將此目錄添加到命令中的PYTHONPATH中並不適用於我,但上面的工作就像一個魅力。