1

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/bin/python

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

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

我该如何解决?

4

3 回答 3

5

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

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

转换后的文件将在prawn.unix.py.

于 2012-10-21T08:10:34.870 回答
1

这本质上是相同的错误:您的 shebang 行以回车\r/结尾^Menv打印出来(它打印python,它执行回车并在行首打印 : No such file or directory

如果python直接调用,python^M是找不到的。

对于这两种情况,删除多余的字符;一旦你让它工作,版本env是更好的版本。

于 2012-10-21T08:31:39.703 回答
1

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

于 2012-10-21T08:12:04.063 回答