Python
沒有這樣的文件或目錄,但我可以看到它!
我正在嘗試使用 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
,我可以看到文件,所以我不知道為什麼它不會執行。
如果你看到錯誤“:沒有這樣的文件或目錄”(冒號前沒有任何內容),這意味著你的 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)。