linux上运行.py脚本,报错^M: bad interpreter: No such file or directory

很多情况下python编写的脚本都是在windows上用IDE写好,再上传到服务器上,如果在服务器上用vim稍作修改,往往会出现问题。例如

#!/usr/bin/python
# -*- coding: utf-8 -*-
实际运行报错:/usr/bin/python^M: bad interpreter: No such file or directory

仔细检查报错内容,未发现代码错误或者路径错误,注意^m,这是windows下的断元字符。所以问题就是,在多个环境上进行编写,可能会因为字符(win/unix换行符不一样)、缩进(两个编辑环境的缩进tab/space不一致)均易导致这种错误。

解决方法:vim打开文件,进入命令模式,输入:set ff=unix,即将文本格式设置为unix。

如果仍存在问题,直接检查两个环境上缩进是否一致。