2010-11-15 67 views
2

我試圖運行下面的Python程序的Python + Ubuntu的錯誤

import re 
regex=re.compile("http...imgs.xkcd.com.comics.[\\S]*.[jpg|png]") 
f=open('out.txt') 
for a in f: 
    print regex.findall(a) 
    print '\n' 

當我手動鍵入代碼到解釋器,它按預期工作 但是當我將它保存爲一個文件,並嘗試運行它,它會給出錯誤。 我用來運行它的命令是

chmod +x 
sudo ./pymod.py 

錯誤: ./pymod.py:2:語法錯誤: 「(」 意外

如果我不使用sudo,我得到的錯誤是

./pymod.py: line 2: syntax error near unexpected token `(' 
./pymod.py: line 2: `regex=re.compile("http...imgs.xkcd.com.comics.[\\S]*.[jpg|png]")' 

正在使用Ubuntu 10.04的一切,在默認情況下

大約需要10-15秒的誤差出現

+0

蟒蛇pymod.py工作由聖地亞哥Lezica – Akash 2010-11-15 18:17:44

回答

1

當你將某些東西設置爲可執行文件時,你必須指定它要運行的東西,否則Linux會認爲它是一個bash腳本。

添加爲文件的第一行:

#!/usr/bin/python 

或者運行它想:

python pymod.py 

乾杯!

+0

THX的建議,它的工作.. – Akash 2010-11-15 18:16:06

+0

如果它試圖運行該文件爲二進制,你會得到非常不同的錯誤;)不,它運行bash。否則,是的。 – delnan 2010-11-15 18:16:21

+0

更正。謝謝!編輯:大聲笑剛剛看到他發佈的輸出,我甚至沒有讀過它,當然它會拋出非常不同的錯誤。 – slezica 2010-11-15 18:28:48

2

這可能是一個bash腳本,而不是在Python執行。把

#!/usr/bin/env python 

在你的腳本的開始。