【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:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章