Linux下运行Python脚本显示“: 没有那个文件或目录”问题
2016-12-23 10:42
731 查看
之前在Windows下写好了一个Python脚本,运行没问题,今天在Linux下,脚本开头的注释行已经指明了解释器的路径,也用chmod给了执行权限,但就是不能直接运行脚本。
后来一想,应该是编码问题。Windows下,文本的换行是\r\n一同实现的,而Lnix/UNIX下则只用\n。对于:
#!/usr/bin/env python\r\n
这样一行文本,windows下的程序会认为#!/usr/bin/env python就是一行。而linux会认为#! /usr/bin/env python\r是一行。于是就报错了,因为根本没有python\r这个文件。但是还是有点说不通,env如果出错的话应该是报这样的错误信息的:
/usr/bin/env: python : No such file or directory (python后面有一个回车符)
那为什么现在是:
: No such file or directory
这主要是因为\r这个字符的缘故。在linux终端下,输出\r会什么都不显示,只是把光标移到行首。于是终端虽然输出了/usr/bin/env: python,但是碰到\r后,光标会被移到行首,接着输出了:No such file or directory把前面的覆盖掉了。于是出现了那个莫名其妙的出错信息了。
解决办法:
用vim打开该sh文件,输入:
:set ff
回车,显示fileformat=dos,重新设置下文件格式:
:set ff=unix
保存退出
后来一想,应该是编码问题。Windows下,文本的换行是\r\n一同实现的,而Lnix/UNIX下则只用\n。对于:
#!/usr/bin/env python\r\n
这样一行文本,windows下的程序会认为#!/usr/bin/env python就是一行。而linux会认为#! /usr/bin/env python\r是一行。于是就报错了,因为根本没有python\r这个文件。但是还是有点说不通,env如果出错的话应该是报这样的错误信息的:
/usr/bin/env: python : No such file or directory (python后面有一个回车符)
那为什么现在是:
: No such file or directory
这主要是因为\r这个字符的缘故。在linux终端下,输出\r会什么都不显示,只是把光标移到行首。于是终端虽然输出了/usr/bin/env: python,但是碰到\r后,光标会被移到行首,接着输出了:No such file or directory把前面的覆盖掉了。于是出现了那个莫名其妙的出错信息了。
解决办法:
用vim打开该sh文件,输入:
:set ff
回车,显示fileformat=dos,重新设置下文件格式:
:set ff=unix
保存退出
相关文章推荐
- Linux下运行Python脚本显示“: 没有那个文件或目录”问题
- Linux下运行Python脚本显示“: 没有那个文件或目录”问题
- 解决Linux下运行Python脚本显示“: 没有那个文件或目录”的问题
- 编码问题导致python脚本运行时出错: 没有那个文件或目录
- Linux下运行Python脚本显示“: /usr/bin/env "python\r" 找不到那个文件或目录
- Linux下运行bash脚本显示“: /usr/bin/env: "bash\r": 没有那个文件或目录
- Windows下记事本编辑的Shell脚本放到Linux下执行出错,格式问题(/bin/bash^M: bad interpreter: 没有那个文件或目录)
- Linux| 脚本运行错误(坏的解释器:没有那个文件或目录)
- [问题-已解决]arm-none-linux-gnueabi-gcc没有那个文件或目录
- 环境搭建arm-linux-gcc 没有那个文件或目录的问题
- 解决 linux下编译make文件报错“/bin/bash^M: 坏的解释器:没有那个文件或目录” 问题
- 解决linux交叉编译器出现“bad elf interpreter 没有过那个文件或目录”问题
- 解决在linux下编译32程序出现“/usr/include/gnu/stubs.h:7:27: 致命错误:gnu/stubs-32.h:没有那个文件或目录问题”
- linux下用gcc编译c程序时遇到的问题: error: stdio.h: 没有那个文件或目录
- /usr/bin/python^M: 解释器错误: 没有那个文件或目录(问题解决)
- [问题-已解决]arm-none-linux-gnueabi-gcc没有那个文件或目录
- ubuntu下如何处理出现“ unable to execute ./DrClientLinux: No such file or directory”,“没有那个文件或目录”的问题。
- Lua在 linux下源码编译问题之readline/readline.h:没有那个文件或目录解决方法
- 解决 linux下编译make文件报错“/bin/bash^M: 坏的解释器:没有那个文件或目录” 问题
- linux java -version显示/usr/bin/java,没有那个文件或目录