我在企业 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
编辑2:
是的,我可以使用 shebang 命令正常运行脚本,如下所示:
<user>/bin/python/Python-3.6.1/python /full/path/sample.py
最佳答案
您的文件有 DOS 行结尾 (CR+LF)。如果您运行 python sample.py
它会起作用,但如果您运行 ./sample.py
则不起作用。重新编码文件,使其具有 Unix 行结尾(每行末尾为纯 LF)。
关于python - 带有 shebang 路径的可执行 .py 文件,python 给出错误,找不到命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44555995/