“: 没有相应的文件和目录”

时间:2012-10-21 08:07:05

标签: python linux unix ubuntu ubuntu-12.04

Ubuntu版本:12.04 Python版本:2.7.3

我有一个开始的脚本(prawn.py):

#! /usr/bin/env python
from random import choice
import os
from webbrowser import open_new
import urllib
print("!")
def getsource(url): page=urllib.urlopen(url);sourcecodey=page.read();page.close;return sourcecodey
#etc

当我在终端中运行时:

$ ./prawn.py
: No such file or directory

当我将第一行更改为#时!的/ usr /斌/蟒

$ which python
/usr/bin/python
$ ./prawn.py
bash: ./prawn.py: /usr/bin/python^M: bad interpreter: No such file or directory

但是当我使用“python prawn.py”运行它时,它可以工作。

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:5)

^M表示您正在使用DOS行结尾。请改用UNIX行结尾。您可以尝试使用sed将文件从DOS行结尾转换为UNIX行结尾:

sed -E 's/\'$'\r''$//' < prawn.py > prawn.unix.py

转换后的文件将位于prawn.unix.py

答案 1 :(得分:1)

似乎你的shebang行中有^M,删除第一行的所有内容,然后手动重新输入(#!/usr/bin/env python)。

答案 2 :(得分:1)

基本上是同一个错误:你的shebang行以回车\r / ^M结束。 env将其打印出来(打印python,它会回车并在行: No such file or directory的开头打印。

如果您直接致电python,则找不到python^M

对于这两种情况,请删除该额外字符;一旦你使用它,env的版本就更好了。