2015-07-10 34 views
0

遇到一個有趣的問題,有一個我用setup.py安裝的python文件。我想把這個python腳本的輸出(只是打印到stdout)作爲電子郵件的主體。然而,當管這個腳本郵寄在命令行上,如下圖所示,一切都很好:python腳本的stdout顯然是在cron中重定向的

my_python_script | mail -s "my subject" my_email

然而,當相同的腳本添加到crontab,它產生預期的主題,但空體:

* * * * * my_python_script | mail -s "my subject" my_email

任何想法,這是爲什麼?

+3

您是否使用腳本的完整路徑? –

+0

嘗試隔離問題;它是與腳本還是與cron行?爲了確定這一點,簡化腳本到只有一行:'print「hello,world」'。它在cron中仍然失敗嗎? –

+0

@AnandSKumar看起來就是這個問題,'my_python_script'被設置爲入口點,所以將命令設置爲'* * * * */usr/local/bin/my_python_script |郵件-s「我的主題」my_email'解決了這個問題。 –

回答

0

你可能需要把Python解釋器腳本名稱前,像這樣:

* * * * * /bin/python my_python_script | mail -s "my subject" my_email 

您可以通過使用which python命令找到Python解釋器的位置。用此路徑替換/bin/python

+0

問題實際上是無法找到入口點的結果,而不是找不到python解釋器。 –

+0

很高興你找到它。希望這個答案會幫助別人。 –