winSCPを使用してヘッドレスRaspberryPIで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 shebang、同じ権限、同じユーザーpiを使用して、同様のpythonスクリプトを試しましたが、機能します。
ls
も行います ファイルが表示されるので、なぜ実行されないのかわかりません。
承認された回答:
AskUbuntuから、Gillesによる回答:
「:そのようなファイルまたはディレクトリはありません」(コロンの前に何もありません)というエラーが表示された場合は、おそらくWindowsで編集されたため(CR、LFを行区切り記号)。 CR文字を使用すると、シェルがメッセージの先頭を出力した後、カーソルが行の先頭に戻るため、エラーメッセージの一部であるインタープリター文字列を終了するCRの後の部分のみが表示されます。
>CRを削除します。シバンラインの末尾はUnixラインである必要があります(ラインフィードのみ)。 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ファイルを編集するときにUnixの行末(つまりLFのみ)を書き込むように構成されていることを確認してください。