/usr/bin/python^M: 解释器错误: 没有那个文件或目录

遇见问题

因为linux在虚拟机中,所以就在本地敲python代码,敲完后再拿到虚拟机去执行,再输入./filename.py时,就遇到这样的一个问题:

bash: ./filename.py: /usr/bin/python^M: 解释器错误: 没有那个文件或目录

开始还以为是自己的python路径不对,但用which python命令查看却发现路径已经配置对了。因为有另一种执行方式,就是直接python filename.py,后来我发觉这种方式虽然能够执行代码,但执行结果却不对,于是,就去搜索了一下。发现,原来是自己在dos下写的代码,拿到linux下,存在不兼容。


分析原因

这是不同系统编码格式引起的:在windows系统中编辑的.sh .py文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。一般是因为windows行结尾和linux行结尾标识不同造成的。


解决方案

在windows下解决:

利用一些编辑器如UltraEdit或EditPlus等工具先将脚本编码转换,再放到Linux中执行。转换方式如下(UltraEdit):File-->Conversions-->DOS->UNIX即可。

linux下直接替换:

sed -i 's/^M//g' filename (注意^M 在linux 下写法 按^M 是回车换行符,输入方法是按住CTRL+v,松开v,按m)(这个方法我试过了,不灵验)

也可在Linux中转换:
  1. 首先要确保文件有可执行权限:#sh>chmod a+x filename
  2. 然后修改文件格式: #sh>vi filename
  3. 利用如下命令查看文件格式: :set ff 或 :set fileformat
  4. 可以看到如下信息: fileformat=dos 或 fileformat=unix
  5. 利用如下命令修改文件格式: :set ff=unix 或 :set fileformat=unix
  6. 保存退出,你就可以以./filename方式执行filename文件了

这图是我操作过程的一部分:
dos%E4%B8%8Eunix%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F.png

原文地址

转载于:https://www.cnblogs.com/busui/p/6882581.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值