2013-02-08 37 views

回答

13

編輯

嘗試是這樣的:

*/1 * * * * . /path-to-env/bin/activate && /home/user/Desktop/job/dp/manage.py statistics 

這應該被理解爲:激活env和,如果這是成功的,EXCUTE的manage.py腳本。由於manage.py應該有一個python shebang,並且虛擬env設置了正確的python解釋器,這應該起作用。

顯然cron通常與/bin/sh一起運行,它不知道source命令。所以一種選擇是使用點作爲source替代品。另設置/bin/bash中的cron文件:

SHELL=/bin/bash 
*/1 * * * * source /path-to-env/bin/activate && /home/user/Desktop/job/dp/manage.py statistics 

在閱讀更多關於這個問題: http://codeinthehole.com/writing/running-django-cronjobs-within-a-virtualenv/ 文章沒有提到source可以通過.所取代,但我只是嘗試它和它爲我工作。所以你現在有幾種選擇可供選擇,甚至還有其他的文章。 ;)

+0

*/1 * * * * /桌面源碼作業/ bin /激活&& /家庭/用戶/桌面/作業/ dp python manage.py統計不起作用 – user2054574 2013-02-08 16:14:14

+0

我已更新我的答案。請確保使用絕對路徑或相應地使用'cd'命令鏈接它們。 – 2013-02-08 16:40:37

4

使用類似~/envs/someenv/lib/python /path/to/your/script

在您的情況它看起來像

*/1 * * * * ~/envs/someenv/lib/python /home/user/Desktop/job/dp/manage.py statistics