【问题记录】1、执行*/*.py 提示 No such file or directory

在 Python 脚本的第一行经常见到这样的注释,这样既可实现 ./*.py 去执行 python 文件了:

#!/usr/bin/env python
或者
#!/usr/bin/python

#!/usr/bin/python是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python解释器;
#!/usr/bin/env python这种用法是为了防止操作系统用户没有将python装在默认的/usr/bin路径里。当系统看到这一行的时候,首先会到env设置里查找python的安装路径,再调用对应路径下的解释器程序完成操作。
#!/usr/bin/python相当于写死了python路径;
#!/usr/bin/env python会去环境设置寻找python目录(推荐)。
更多相关内容可见这里

编译了一个脚本,命名为startrun.py,按照上面的方式添加注释,但是在使用中却报出现下面的错误:

[yupf@localhost ~]$ ./start_run.py -r /home -l log
: No such file or directory

这里的原因是文件格式是 DOS,而非UNIX格式,我这里在 Windows 下生成文件并进行编辑,然后拷贝到 Linux 中运行。
Windows 格式下,换行符是 CRLF,而 UNIX 换行符是 LF,使得第一行变成了#!/usr/bin/env python\015(CR的ascaii 15)

使用 vi 检查文件格式:":set ff 或者:set fileformate"
使用 vi 转换文件格式:“:set ff=unix或者:set fileformate=unix”

文件格式转化为UNIX格式既可。

你可能感兴趣的:(问题解析,python)