在windows系統下寫的python腳本,在linux下賦予權限chmod +x xxx.py 以后,執行./xxx.py運行提示:bash: /usr/bin/autocrorder: /usr/bin/python^M: bad interpreter: No such file or directory
分析:
這是不同系統編碼格式引起的:在windows系統中編輯的.sh .py文件可能有不可見字符,所以在Linux系統下執行會報以上異常信息。一般是因為windows行結尾和linux行結尾標識不同造成的。
解決:
1)在windows下轉換:
利用一些編輯器如UltraEdit或EditPlus等工具先將腳本編碼轉換,再放到Linux中執行。轉換方式如下(UltraEdit):File-->Conversions-->DOS->UNIX即可。
2)linux下直接替換:
sed -i 's/^M//g' filename (注意^M 在linux 下寫法 按^M 是回車換行符,輸入方法是按住CTRL+v,松開v,按m)
3)也可在Linux中轉換:
首先要確保文件有可執行權限
復制代碼 代碼如下:
#sh>chmod a+x filename
然后修改文件格式
復制代碼 代碼如下:
#sh>vi filename
利用如下命令查看文件格式
:set ff 或 :set fileformat
可以看到如下信息
fileformat=dos 或 fileformat=unix
利用如下命令修改文件格式
:set ff=unix 或 :set fileformat=unix
:wq (存盤退出)
最后再執行文件
#sh>./filename
您可能感興趣的文章:- Python3 執行Linux Bash命令的方法
- python 捕獲 shell/bash 腳本的輸出結果實例
- python和bash統計CPU利用率的方法
- 使用Python腳本在Linux下實現部分Bash Shell的教程
- Python遠程linux執行命令實現
- 如何把python項目部署到linux服務器
- Linux安裝Python3如何和系統自帶的Python2并存
- Linux刪除系統自帶版本Python過程詳解
- windows、linux下打包Python3程序詳細方法
- Python和Bash結合在一起的方法