2012-10-21 198 views
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 

但是當我運行使用 「蟒蛇prawn.py」 它,它的工作原理。

我該如何解決這個問題?

回答

5

^M表示您正在使用DOS行結束符。改爲使用UNIX行尾。你可以嘗試從DOS行結束將您的文件使用sed這樣UNIX行尾:

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

轉換後的文件將在prawn.unix.py

+0

謝謝你這麼多,我忘了我寫這在Windows 我做到了更長的路之前,我看到了你的編輯 – Property404

+3

如果[DOS2UNIX的(! http://manpages.ubuntu.com/manpages/natty/man1/dos2unix.1.html)已安裝,使用它比sed調用更容易。 – GreenMatt

1

看起來有一個^M您的shebang線,刪除您的第一行的所有內容,然後重新鍵入它(#!/usr/bin/env python)手動。

1

它本質上是相同的錯誤:您的shebang行以回車\r/^M結尾。 env打印了這一點(它打印python,它確實在該行: No such file or directory的開頭回車和打印。

如果您直接致電pythonpython^M沒有找到。

對於這兩種情況,去除多餘的性格;與env的版本是最好的一個,一旦你做它的工作

相關問題