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


11

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
Windowsで「areadetect_movie_21.py」を編集しましたか?このaskubuntu.com/a/372​​691が表示された場合。
Arkadiusz Drabczyk 2015年

はい、なぜ日食ですか?
レジー2015年

追加したコメントを編集しました。このaskubuntu.com/a/372​​691を参照してください
Arkadiusz Drabczyk 2015年

はいはいはいそれはうまくいきました、どうもありがとう!コメントを回答に変換して受け入れてもらえますか?
レジー

回答:


28

AskUbuntuから、Gillesによる回答:

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

CRを削除します。shebang行には、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のみ)を書き込むように構成されていることを確認してください。


1
私は、Windows PCのメモ帳でsshを使用してpiでファイルを開き、キャリッジリターンを削除しました。
レジー2015年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.