带有shebang路径的可执行.py文件,python发出错误,找不到命令

时间:2017-06-14 22:59:49

标签: python linux unix

我在公司UNIX SUSE计算机的用户目录中有一个自安装的python(没有sudo权限):

which python <user>/bin/python/Python-3.6.1/python

我有一个可执行文件(chmod 777)sample.py文件,该文件位于文件顶部:

#!<user>/bin/python/Python-3.6.1/python

我可以像这样执行文件:

python sample.py

但是当我单独运行它时会出现错误:

/full/path/sample.py /full/path/sample.py: Command not found

我不知道为什么它不起作用。由于文件是可执行的,python路径是正确的,并且如果我在前面放置python命令,文件就会执行,因此我可能会出错。我错过了什么?

编辑: 我试着把它放在文件的顶部:

#!/usr/bin/env python

现在,我收到了这个错误:

: No such file or directory

我试过这个以确保我的环境正确

which env /usr/bin/env

EDIT2: 是的,我可以使用shebang命令运行脚本,如下所示: <user>/bin/python/Python-3.6.1/python /full/path/sample.py

2 个答案:

答案 0 :(得分:2)

您的文件有DOS行结尾(CR + LF)。如果您运行python sample.py,但如果您运行./sample.py,则无效。重新编码文件,使其具有Unix行结尾(每行末尾的纯LF)。

答案 1 :(得分:0)

尝试使用this post中所述的%08。让操作系统完成工作。