没有这样的文件或目录,但我可以看到它!


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'3

是的,为什么?
雷吉2015年

添加评论后,我对其进行了编辑。看到这个askubuntu.com/a/372​​691
Arkadiusz Drabczyk

是是是它奏效了,非常感谢!您能将您的评论转换为答案,以便我接受吗?
雷吉2015年

好吧,我做到了:)
Arkadiusz Drabczyk

Answers:


28

来自AskUbuntuGilles回答:

如果看到错误“:没有这样的文件或目录”(冒号前没有任何内容),则表示您的shebang行末尾有回车符,可能是因为它是在Windows(使用CR,LF作为行分隔符)。在外壳打印消息的开头之后,CR字符使光标移回到行的开头,因此您只能看到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行尾的编辑器(例如,比Notepad少一些脑筋),并确保在配置Unix文件时将其配置为写入Unix行尾(仅LF)。


1
我通过Windows PC上的记事本中的ssh在pi上打开了文件,并删除了回车符,它可以正常工作:)非常感谢。
雷吉2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.