Threads and import
Diez B. Roggisch
deets at nospam.web.de
Wed May 28 15:26:08 EDT 2008
rsoh.woodhouse 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
More information about the Python-list
mailing list