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
を実行するとファイルが表示されるため、実行できない理由がわかりません。
エラー:「そのようなファイルまたはディレクトリはありません」(コロンの前に何もない)が表示された場合、おそらく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ファイルを編集する場合。