Python

沒有這樣的文件或目錄,但我可以看到它!

  • November 30, 2018

我正在嘗試使用 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,我可以看到文件,所以我不知道為什麼它不會執行。

來自AskUbuntu,由Gilles回答:

如果你看到錯誤“:沒有這樣的文件或目錄”(冒號前沒有任何內容),這意味著你的 shebang 行末尾有一個輸入,可能是因為它是在 Windows 下編輯的(它使用 CR,LF 作為行分隔符)。CR 字元導致游標在 shell 列印消息的開頭後移回行首,因此您只能看到 CR 之後的部分,該部分結束了作為錯誤消息一部分的解釋器字元串。

刪除 CR:shebang 行需要有一個 Unix行結尾(僅換行)。Python 本身允許 CRLF 行結尾,因此其他行上的 CR 字元不會受到傷害。另一方面,Shell 腳本必須不含 CR 字元。

要刪除 Windows 行尾,您可以使用dos2unix

須藤dos2unix /usr/local/bin/casperjs

或 sed:

sudo sed -i -e ’s/\r$//’ /usr/local/bin/casperjs

如果您必須在 Windows 下編輯腳本,請使用能夠處理 Unix 行尾的編輯器(即比記事本少腦死的東西),並確保在編輯 Unix 文件時將其配置為編寫 Unix 行尾(即僅 LF)。

引用自:https://unix.stackexchange.com/questions/189254