On May 28, 8:26 pm, "Diez B. Roggisch" <[EMAIL PROTECTED]> wrote: > [EMAIL PROTECTED] 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 -- http://mail.python.org/mailman/listinfo/python-list