执行模块作为脚本

我现在正在学习python,而今​​天,我在http://docs.python.org/release/2.5.4/tut/node8.html遇到了一个问题

6.1.1作为脚本执行模块

当你运行一个Python模块

python fibo.py <arguments>

模块中的代码将被执行,就像导入它一样,但将__name__设置为“__main__”。 这意味着通过在你的模块的最后添加这个代码:

 if __name__ == "__main__": import sys` fib(int(sys.argv[1])) 

您可以将该文件作为脚本以及可导入的模块使用,因为parsing命令行的代码仅在模块作为“主”文件执行时才会运行:

$ python fibo.py 50 1 1 2 3 5 8 13 21 34

但是当我在shell中这样做的时候,我得到了

 File "<input>", line 1 python fibo.py 222 SyntaxError: invalid syntax 

如何正确执行脚本?

fibo.py是

 def fib(n): a,b=0,1 while b<n: print b, a,b = b,a+b def fib2(n): result=[] a,b=0,1 while b<n: result.append(b) a,b=b,a+b return result if __name__ =="__main__": import sys fib(int(sys.argv[1])) 

你到底在做什么? 你正在运行的代码是什么?

这听起来像你在脚本中犯了一个错误 – 可能是错过了冒号或缩进了错误。 没有看到你正在运行的文件是不可能说更多。

编辑:

我已经知道发生了什么问题。 你正试图在python shell中运行python fibo.py 222 。 我这样做的时候遇到了同样的错误:

 [138] % python Python 2.6.1 (r261:67515, Apr 9 2009, 17:53:24) [GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> python fibo.py 222 File "<stdin>", line 1 python fibo.py 222 ^ SyntaxError: invalid syntax >>> 

您需要从操作系统的命令行提示符而不是从Python的交互式shell中运行它。

确保首先转到Python主目录。 例如,从操作系统的命令行输入:cd C:\ Python33 \ – 取决于您的python版本。 矿是3.3。 然后键入:python fibo.py 200(例如)