/usr/bin/env python 在 cmdline 上运行,失败 #!行

/usr/bin/env python 在 cmdline 上运行,失败 #!行

我试图通过添加以下“shebang”第一行来使 python 脚本可运行:

#!/usr/bin/env python

但是当我运行该文件时,我得到:

$ myscript.py
: No such file or directory

现在,如果我直接尝试该env行,它就会起作用:

]$ /usr/bin/env python
Python 2.6 (r26:66714, May  5 2010, 14:02:39)
etc. etc.

为什么同一行在文件内失败,但在文件外成功?

答案1

您的 shebang 行中的某个位置可能有无效字符。由于您是插入它的人,因此它很可能是一个回车符,即您的行以换行符和回车符结束(或反之亦然) - 采用 ODS 风格的换行符。

尝试dos2unix在脚本文件上使用将所有换行符转换为仅0x10(UNIX 样式)。

相关内容