Threads and import

rsoh.woodhouse at googlemail.com rsoh.woodhouse at googlemail.com
Wed May 28 15:31:45 EDT 2008


On May 28, 8:26 pm, "Diez B. Roggisch" <de... at nospam.web.de> wrote:
> rsoh.woodho... at googlemail.com schrieb:
>
>
>
> > Hi,
>
> > I'm trying to work out some strange (to me) behaviour that I see when
> > running a python script in two different ways (I've inherited some
> > code that needs to be maintained and integrated with another lump of
> > code). The sample script is:
>
> > # Sample script, simply create a new thread and run a
> > # regular expression match in it.
> > import re
>
> > import threading
> > class TestThread(threading.Thread):
>
> >     def run(self):
> >         print('start')
> >         try:
> >             re.search('mmm', 'mmmm')
> >         except Exception, e:
> >             print e
> >         print('finish')
>
> > tmpThread = TestThread()
> > tmpThread.start()
> > tmpThread.join()
> > import time
> > for i in range(10):
> >     time.sleep(0.5)
> >     print i
>
> > # end of sample script
>
> > Now if I run this using:
>
> > $ python ThreadTest.py
>
> > then it behaves as expected, ie an output like:
>
> > start
> > finish
> > 0
> > 1
> > 2
> > ...
>
> > But if I run it as follows (how the inherited code was started):
>
> > $ python -c "import TestThread"
>
> > then I just get:
>
> > start
>
> > I know how to get around the problem but could someone with more
> > knowledge of how python works explain why this is the case?
>
> Works for me. And I don't see any reason why it shouldn't for you -
> unless you didn't show us the actual code.
>
> Diez

Strange. That is the code exactly as I run it using python 2.4.4 2.5.1
on Ubuntu 7.10. Which version of python/what platform were you using?

Rowan



More information about the Python-list mailing list