views:

221

answers:

1

ok so I decided to learn python (perl, c, c++, java, objective-c, ruby and a bit of erlang and scala under my belt). and I keep on getting the following error when I try executing this:

Tue Jul 21{stevenhirsch@steven-hirschs-macbook-pro-2}/projects/python:-->./apache_logs.py 
  File "./apache_logs.py", line 17
    print __doc__
                ^
SyntaxError: invalid syntax



#!/usr/local/bin/python
"""

USAGE:

    apache_logs.py 

"""

import sys
import os


if __name__ == "__main__":
    if not len(sys.argv) > 1:
        print __doc__
        sys.exit(1)
    infile_name = sys.argv[1]

I know it must be something really stupid but I've googled and read the documentation without finding anything. The docs all seem to state that what I've coded should work.

Many thanks in advance for your help!!

+3  A: 

What version of Python do you have? In Python 3, print was changed to work like a function rather than a statement, i.e. print('Hello World') instead of print 'Hello World'

I can recommend you to keep using Python 2.6 unless you're doing some brand new production development. Python 3 is still pretty new.

Blixt
yes that was it! Thank you very much!
ennuikiller
Right, no one should be using Python 3.x yet unless they have a really good reason.
Wahnfrieden
It's fine to use Python 3.x for small hobby projects, as long as you're aware that most of the 3rd-party Python libraries haven't been ported yet.
Marius Gedminas
Wahnfrieden, why should 'no one' use Python 3.0. If it's library support, you've got a serious chicken and the egg problem. If 'no one' should use it then no libraries will be ported. I'd recommend using Python 3 if you accept the library limits, if you don't, then you should use 2.6.
Paul Whitehurst
Developing a Python library is a "really good reason" to be using Python 3.x, so my point stands. Basically, if you have to ask, then Python 3.x isn't for you, yet, but maybe in a year or two. For learners, 2.6 already has some important 3.0 features backported to it, so it's a much better starting place.
Wahnfrieden