2016-07-15 68 views
0

我在共享主機(bluehost)上運行我的python腳本時遇到問題,並且在其他SO線程的幫助下,我能夠設置PYTHONPATH並運行腳本而沒有任何問題。在共享主機中爲cron作業設置PYTHONPATH

現在我需要通過cron作業運行腳本。共享主機環境中的cron作業只是我可以調用腳本的一行,但在調用腳本之前無法弄清楚如何設置PYTHONPATH。

例子:

python /path/to/my/script.py 

我相信這個問題應該是共同的,但我找不到其他線程任何回答。

任何想法如何爲cron作業設置PYTHONPATH?

此外,代碼庫是在本地環境中開發的,服務器通過git pull獲取副本。所以我的首選解決方案不是更改服務器的源代碼。可以從調用主腳本的cron作業調用另一個腳本,並在其中設置變量,但更改主要腳本我寧願不發生,以便我不需要維護兩個版本的代碼,一個是本地代碼,一個是for服務器。

回答

5

更改您的cron作業以運行shell腳本。在shell腳本中,設置PYTHONPATH,然後調用python程序。

您的cron作業更改爲這樣的:my_shell_script.sh

/path/to/my_shell_script.sh 

內容:

export PYTHONPATH=something 
python /path/to/py/python/program.py 

如果你不希望有一個獨立的shell腳本,你可以將它全部入的cron雖然它可以變得很長:

PYTHONPATH=something python /path/to/py/python/program.py 
+0

也可以直接在crontab文件中設置該變量,它會得到注入工作所在的環境中。 – reptilicus

+0

@reptilicus與共享主機是否仍然可以訪問crontab文件?現在我所能看到的只是從cPanel創建單行cron。 – apadana