【python自动化运维】运行python脚本报错: /usr/bin/python3^M: bad interpreter: No such file or directory解决方法

在Windows上写完Python脚本,丢到Linux环境下运行,经常发生运行报错的情况:
在这里插入图片描述

查看代码,发现语句也没有啥毛病:
【python自动化运维】运行python脚本报错: /usr/bin/python3^M: bad interpreter: No such file or directory解决方法_第1张图片

此处省略艰辛的排查过程N万个字…

用file命令查看文件类型:
可以看到行分隔符是CRLF模式,这是Windows格式的换行符,
会在每行行末加多一个^M,Linux不识别,具体可以查看CRLF和LF的区别。
【python自动化运维】运行python脚本报错: /usr/bin/python3^M: bad interpreter: No such file or directory解决方法_第2张图片

用 cat -v 命令查看文件可以看到,行末都有一个^M符号。
【python自动化运维】运行python脚本报错: /usr/bin/python3^M: bad interpreter: No such file or directory解决方法_第3张图片

解决方法:

替换掉^M符号,重新生成一个文件:

cat -v oldfile.py | sed -e '1,$s/\^M$//g' > newfile.py

在这里插入图片描述

用cat -v命令查看效果,^M符号已经替换:
【python自动化运维】运行python脚本报错: /usr/bin/python3^M: bad interpreter: No such file or directory解决方法_第4张图片

给上执行权限,执行脚本,问题解决:
ps:只去掉了行末的 ^M 符,所以print语句输出的 ^M还在。
【python自动化运维】运行python脚本报错: /usr/bin/python3^M: bad interpreter: No such file or directory解决方法_第5张图片

附上两个常用软件设置为unix格式的步奏:

Notepad++:
【python自动化运维】运行python脚本报错: /usr/bin/python3^M: bad interpreter: No such file or directory解决方法_第6张图片

pycharm:
【python自动化运维】运行python脚本报错: /usr/bin/python3^M: bad interpreter: No such file or directory解决方法_第7张图片

你可能感兴趣的:(Python自动化运维)