[Tutor] running modules as scripts

ugajin at talktalk.net ugajin at talktalk.net
Thu Dec 5 19:20:05 CET 2013


I have some difficulty with the abovet. I succeeded after a fashion, but only after some experiment, and I am not satisfied that all is well. 
Here is the script code (as per the Python tutorial 6.1.1.):

def fib(n):    # write Fibonacci series up to n
    a, b = 0, 1
    while b < n:
        print b,
        a, b = b, a+b

def fib2(n): # return Fibonacci series up to 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]))

It is saved in the current directory as fibo.py with the current directory being: /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/

The module executes ok when imported but not as a script. 
Terminal returns: 
Apples-iMac-4:~ apple$ python fibo.py 50
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python: can't open file 'fibo.py': [Errno 2] No such file or directory
Apples-iMac-4:~ apple$ 

However, Python appears to be searching the correct directories:

>>> import sys
>>> sys.path
['', '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip', '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7', '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin', '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac', '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages', '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk', '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old', '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages', '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/gtk-2.0']

And. . .  if I open the same script with: right click > Open with > Python Launcher.app (2.7.6) I get:
Last login: Wed Dec  4 20:52:15 on ttys002
Apples-iMac-4:~ apple$ cd '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/' && '/usr/bin/pythonw'  '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/fibo.py'  && echo Exit status: $? && exit 1
Traceback (most recent call last):
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/fibo.py", line 21, in <module>
    fib(int(sys.argv[1]))
IndexError: list index out of range

Then . . . if I then use this same window to call the script it runs:
Apples-iMac-4:python2.7 apple$ python fibo.py 50
1 1 2 3 5 8 13 21 34
Apples-iMac-4:python2.7 apple$ 

Je suis perplexed!

-A
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20131205/71adfda2/attachment-0001.html>


More information about the Tutor mailing list