2010-11-15 69 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 

在你的脚本的开始。