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

时间: 2024-12-15 04:31:13

window下编写python脚本在linux下运行出错 usr/bin/python^M: bad interpreter: No such file or directory的相关文章

linux:执行脚本出现/bin/sh^M: bad interpreter: No such file or directory

问题出在^M,原因是脚本文件的编码格式是dos,有可能是我在window下编辑完了直接传到linux的结果,可以在vim中输入以下命令确认编码格式 :set ff //可以看到dos或unix的字样. 如果的确是dos格式的, 那么你可以用set ff=unix把它强制为unix格式的, 然后存盘退出. 再运行一遍看. 也可以在命令行中用dos2unix指令转换编码 #dos2unix filename linux:执行脚本出现/bin/sh^M: bad interpreter: No suc

linux sh脚本异常:/bin/sh^M:bad interpreter: No such file or directory

在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory.这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息. 如果我们的脚本是在windows环境下编写的,需要将编码转换称unix格式. 下面我们用Notepad++中Windows,Unix,Mac三种格式之间的转换. 1.我们先查看当前文件格式(换行符用的是什么字符),如图: 2.从

Linux报错第一弹: /bin/sh^M: bad interpreter: No such file or directory

从Windows Sublime 写好一shell脚本,移到 Linux下,发现报错,/bin/sh^M: bad interpreter: No such file or directory 原因:这是不同系统编码格式引起的:在 windows系统中编辑的 .sh文件可能有不可见字符,所以在 Linux系统下执行会报以上异常信息. 解决: 1)在 windows下转换: 利用一些编辑器如 UltraEdit或 EditPlus等工具先将脚本编码转换,再放到 Linux中执行.转换方式如下( U

[shell编程] sh脚本异常:/bin/sh^M:bad interpreter: No such file or directory

转载地址:http://www.cnblogs.com/pipelone/archive/2009/04/17/1437879.html 在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory. 分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息. 解决:1)在windows下转换: 利用一些编辑器如UltraEdit或EditP

python脚本在linux下的执行

假设现有一篇待执行的python脚本test.py python脚本在linux下面执行有两种方式: 打开Linux终端,输入 python test.py 在test.py脚本第一行添加声明 #!/usr/bin/python 这是指定python脚本的解释器,然后给test.py添加可执行权限并执行 chmod +x test.py ./test.py 第一行时给test.py添加可执行权限,第二行执行该脚本.(./)的含义是本目录下 原文地址:https://www.cnblogs.com

Linux下执行.sh命令出现-bash: ./bin/start.sh: /bin/bash^M: bad interpreter: No such file or directory

原因是 文件的格式是dos,修改为unix 就OK了 查看文件格式  用vim 打开出错的文件    按 ESC键     再按shift+冒号   输入 set  ff  回车   可以看见 该文件的格式 fileformat=dos按shift + 冒号  输入  set ff=unix 回车 发现没反应,那就对了. 可以按 shift + 冒号  set ff 查看  fileformat=unix --------------------- 原文:https://blog.csdn.ne

执行shell脚本提示“-bash: ./checkP.sh: /bin/sh^M: bad interpreter: No such file or directory”解决方法

在windows机器下新建了一个shell脚本如下 sed -i 's/\r$//' checkP.sh

sh脚本异常:/bin/sh^M:bad interpreter: No such file or directory

linux更改脚本编码格式:vi *.sh 通过 :set ff 查看当前格式 再通过 :set ff=unix 更改 然后保存退出(:wq)

运行该脚本出现/bin/sh^M: bad interpreter: No such file or directory

错误中脚本文件的一个非常可能的原因是DOS格的, 即每一行的行尾以\r\n来标识, 其ASCII码各自是0x0D, 0x0A. 能够有非常多种办法看这个文件是DOS格式的还是UNIX格式的, 还是MAC格式的 在Terminal中输入例如以下: vi filename 然后用命令 :set ff? 能够看到dos或unix的字样. 假设的确是dos格式的, 那么你能够用set ff=mac把它强制为mac格式的, 然后存盘退出. 再执行一遍看. 就会看到"^M"的真身.这时候把对于的&