Python crashed when importing SOAPpy, printing out 'usage:copy source destination'

jiang.haiyun at gmail.com jiang.haiyun at gmail.com
Sat Oct 28 17:16:20 CEST 2006


Fredrik Lundh wrote:

>
> this is how things work: Python doesn't distinguish between script
> files and module files; a module is simply a script that defines a
> bunch of things.
>
> if you want to create something that can work both as a script and a
> module, see:
>
>     http://effbot.org/pyfaq/tutor-what-is-if-name-main-for.htm
>
> </F>

I still can't understand it. If i rename the 'copy.py' to 'a.py',
there will be no problem.
As follows:
###########################
haiyun# ls
copy.py
haiyun# python
Python 2.4.1 (#2, Mar 28 2006, 21:00:14)
[GCC 3.4.2 [FreeBSD] 20040728] on freebsd5
Type "help", "copyright", "credits" or "license" for more information.
>>> import SOAPpy
usage:copy source destination

haiyun# ls
copy.py  copy.pyc
##########################

it seems that the copy.py in the PWD has been interpreted as the
SOAPpy module imported.
So i rename the copy.py to a.py.
As follows:
########################
haiyun# ls
copy.py  copy.pyc
haiyun# rm copy.pyc
haiyun# mv copy.py a.py
haiyun# ls
a.py
haiyun# python
Python 2.4.1 (#2, Mar 28 2006, 21:00:14)
[GCC 3.4.2 [FreeBSD] 20040728] on freebsd5
Type "help", "copyright", "credits" or "license" for more information.
>>> import SOAPpy
>>>
#########################

Everything is all right!
The content of the copy.py(a.py) is:
#########################
haiyun# cat a.py
#!env python
usage="usage:copy source destination\n"
import sys
len=len(sys.argv)
if len!=3 :
        print usage
        sys.exit()
#########################

I guess something in the SOAPpy module conflects with the copy.py in
the PWD.
So what it happened?

>Regards,
>jiang.haiyun




More information about the Python-list mailing list