我在企业UNIX SUSE电脑我的用户目录(没有sudo的特权)有一个自行安装的Python:与家当路径可执行.py文件
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
我尝试这样做,以确保我的ENV是正确的
which env /usr/bin/env
EDIT2: 是的,我可以用家当命令像这样运行脚本罚款: <user>/bin/python/Python-3.6.1/python /full/path/sample.py
不是问题的解决方案,但'chmod 777'(几乎)从来都不是正确的做法。只设置您实际需要的权限。在这种情况下,最有可能的是'755'(你可以读/写/执行,其他人可以读/执行) – viraptor
你是否检查过可以使用你提供的路径运行脚本?而不是'python sample.py',你可以运行'/ the/full/path/from/shbang sample.py'吗?如果是,那么问题可能与第一行的格式有关。如果不是,那么你要么指向错误的python二进制文件,要么python安装被破坏。 – viraptor
@viraptor,是的,我可以使用shebang的路径运行脚本,我也将它添加到上面的编辑中。格式是正确的,我仔细检查,并且python安装不能被破坏,因为我可以使用'python'命令和'/ path/from/shebang /'命令运行脚本。 – rrlamichhane