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

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

查看代码,发现语句也没有啥毛病:
在这里插入图片描述

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

用file命令查看文件类型:
可以看到行分隔符是CRLF模式,这是Windows格式的换行符,
会在每行行末加多一个^M,Linux不识别,具体可以查看CRLF和LF的区别。
在这里插入图片描述

用 cat -v 命令查看文件可以看到,行末都有一个^M符号。
在这里插入图片描述

解决方法:

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

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

在这里插入图片描述

用cat -v命令查看效果,^M符号已经替换:
在这里插入图片描述

给上执行权限,执行脚本,问题解决:
ps:只去掉了行末的 ^M 符,所以print语句输出的 ^M还在。
在这里插入图片描述

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

Notepad++:
在这里插入图片描述

pycharm:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/wuguifa/article/details/85251983