我在公司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
答案 0 :(得分:2)
您的文件有DOS行结尾(CR + LF)。如果您运行python sample.py
,但如果您运行./sample.py
,则无效。重新编码文件,使其具有Unix行结尾(每行末尾的纯LF)。
答案 1 :(得分:0)
尝试使用this post中所述的%08
。让操作系统完成工作。