今天在电脑上写了一个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版本对应的路径。