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

标签 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

编辑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/

相关文章:

python - Webdriver 测试 - 将事件/通知推送到测试

python - 当从具有多索引列的 DataFrame 中提取系列时,我无法使用 read_csv 读取

python - 具有 F1 分数的 Keras 多标签图像分类

unix - 如何使用 ant 将文件从 Unix 共享复制到 Windows 机器?

将 uint16_t 转换为 char[2] 以通过套接字发送 (unix)

python - 如何阻止 PyCharm 填充文档字符串?

c - C 新手,需要帮助理解以下函数

linux - 用于重复 URL 请求的 Curl 命令

php - VHost 和 htaccess - 500 内部服务器错误

macos - OS X 上的 csplit 是否无法将 '$' 识别为行尾字符?