/usr/bin/env python は cmdline で実行され、#! 行で失敗します

/usr/bin/env python は cmdline で実行され、#! 行で失敗します

次の「シェバン」の最初の行を追加して、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

おそらく、シェバン行のどこかに無効な文字があります。挿入したのはあなた自身なので、おそらくそれはキャリッジ リターンです。つまり、行は ODS 形式の改行で、改行とキャリッジ リターン (またはその逆) で終わります。

スクリプト ファイルで を使用して、すべての改行を(UNIX スタイル)dos2unixのみに変換してみてください。0x10

関連情報