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 shebang、同じ権限、同じユーザーpiを使って同様のPythonスクリプトを試しましたが、うまくいきました。
私も一つ作ってls
みましたが、ファイルが見えるのになぜ実行できないのかわかりませんね。
答え1
~からUbuntuに尋ねる、さんが回答しましたザイルズ:
「:対応するファイルまたはディレクトリなし」(コロンの前に何もありません)エラーが表示された場合は、shebang行の末尾にキャリッジリターンがあることを意味します。それはおそらく、Windowsで編集されたからです(CR、LFを行区切り文字として使用)。 。シェルがメッセージの先頭を印刷した後、CR文字によってカーソルが行の先頭に戻り、エラーメッセージの一部であるソルバー文字列を終了するCRの後ろの部分のみが表示されます。
CR:shebang行を削除するにはUnixが必要です。行末(改行のみ)。 PythonはデフォルトでCRLF行の終わりを許可するため、他の行のCR文字は効果がありません。一方、シェルスクリプトにはCR文字を含めないでください。
Windows 行の末尾を削除するには、次を使用できます。DOS 2 Unix:
sudo dos2unix /usr/local/bin/casperjs
またはsed:
sudo sed -i -e 's/\r$//' /usr/local/bin/casperjs
Windowsでスクリプトを編集する必要がある場合は、Unix行の終わり(メモ帳よりも単純なもの)を処理できるエディタを使用し、Unixファイルを編集するときにUnix行の終わり(LFのみなど)を書き込むように設定されていることを確認してくださいしてください。