window下編寫python腳本在linux下運行出錯 usr/bin/python^M: bad interpreter: No such file or directory


  今天在windows下使用notepad++寫了個python腳本,傳到linux服務器執行后提示:-bash: ./logger.py: usr/bin/python^M: bad interpreter: No such file or directory

1.原因分析
  這是不同系統編碼格式引起的:在windows系統中編輯的logger.py文件可能有不可見字符,所以在Linux系統下執行會報以上異常信息。一般是因為windows行結尾和linux行結尾標識不同造成的,在window中行結尾符為'\r\n'表,而在linux中行結尾符為'\n',而^M 就是是ascii中的'\r'。

2.解決方法
1)在windows下轉換: 
  利用一些編輯器如UltraEdit或EditPlus等工具先將腳本編碼轉換,再放到Linux中執行。轉換方式如下(UltraEdit):File-->Conversions-->DOS->UNIX即可。 
2)linux下直接替換:
  sed -i 's/^M//g'  filename ,意思是替換filename中的每一行中的^M為/(注意^M 在linux 下寫法 按^M 是回車換行符,輸入方法是按住CTRL+v,松開v,按m)
3)也可在Linux中轉換: 
  首先要確保文件有可執行權限 : chmod a+x filename ; 然后修改文件格式 :進入vi filename ,之后利用set ff(或者set fileformat)命令查看文件格式 ,為fileformat=dos 或 fileformat=unix ,再利用如下命令修改文件格式 : set ff=unix 或 :et fileformat=unix ;最后wq (存盤退出) 
  最后再執行文件 ./filename


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM