今天在電腦上寫了一個Python腳本,寫好之后用ftp傳上去,然后執行/var/www/cron.py,結果報錯,/bin/usr/python: bad interpreter: No such file or directory,之前都是執行python /var/www/cron.py都沒問題啊,看來應該不是代碼的問題。
上網上搜了一下,有很多人都反映在windows下寫的python文件會由於編碼問題執行出錯(windows下的換行符是'\r',而linux下是'\n'),於是檢查了一下cron.py,用vim打開,然后用命令模式輸入"set ff",結果輸出”filefomat=DOS“,果真是這里的問題,於是執行set ff=unix,設置成linux下的文件編碼,wq保存,再重新執行/var/www/cron.py,Ok正常了。
有時候可能不一定是這個問題,有可能是python解釋器的路徑的問題,這個要看安裝Python的時候有沒有將/usr/bin/python鏈接到對應的Python版本上,來到”/bin/usr/“路徑下,”ls python“,嗯,沒問題,不過顯示python只是一個符號鏈接,”ls -l python“,輸出:
lrwxrwxrwx 1 root root 9 2010-07-08 12:35 python -> python2.7
解決辦法是,將”#!/usr/bin/python“修改為”#!/usr/bin/python2.7“,然后重新執行python腳本,一般就可以了,建議寫成/usr/bin/env python,這樣就會自動查找python版本對應的路徑。