首頁  >  文章  >  後端開發  >  window下寫python腳本在linux下執行出錯 usr/bin/python^M: bad interpreter: No such file or directory

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

PHP中文网
PHP中文网原創
2017-07-14 18:13:191522瀏覽

  今天在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 ######

以上是window下寫python腳本在linux下執行出錯 usr/bin/python^M: bad interpreter: No such file or directory的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn