web-dev-qa-db-ja.com

そのようなファイルやディレクトリはありませんが、私はそれを見ることができます!

WinSCPを使用してヘッドレスRaspberry Piでpythonスクリプトを実行し、次のエラーメッセージを取得しようとしています。

Command '"./areadetect_movie_21.py"'
failed with return code 127 and error message
/usr/bin/env: python
: No such file or directory.

ターミナルから実行しようとすると、次のようになります。

: No such file or directory.

私は同じpythonスクリプト、同じディレクトリで、同じpython Shebang、同じ権限、同じユーザーpiを使用して、試してみました。

また、lsを実行するとファイルが表示されるため、実行できない理由がわかりません。

11
reggie

AskUbunt から Gilles で回答:

エラー:「そのようなファイルまたはディレクトリはありません」(コロンの前に何もない)が表示された場合、おそらくWindowsで編集されたため(おそらくCR、LFを行区切り記号)。シェルがメッセージの先頭を出力した後、CR文字によりカーソルが行の先頭に戻ります。そのため、エラーメッセージの一部であるインタープリター文字列を終了するCRの後の部分のみが表示されます。

CRを削除します。Shebang行にはUnix line ending (改行のみ)が必要です。 Python自体はCRLFの行末を許可するため、他の行のCR文字は問題ありません。一方で、シェルスクリプトにはCR文字を含めないでください。

Windowsの行末を削除するには、 dos2unix を使用できます。

Sudo dos2unix/usr/local/bin/casperjs

またはsed:

Sudo sed -i -e 's/\ r $ //'/usr/local/bin/casperjs

Windowsでスクリプトを編集する必要がある場合は、Unixの行末に対応するエディター(つまり、メモ帳よりも使いやすいもの)を使用し、Unixの行末(つまりLF)を書き込むように構成されていることを確認してください。のみ)Unixファイルを編集する場合。

28