Threads and import

Diez B. Roggisch deets at nospam.web.de
Wed May 28 15:52:26 EDT 2008


rsoh.woodhouse at googlemail.com schrieb:
> 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?

mac-dir:/tmp deets$ python
Python 2.5.1 (r251:54869, Apr 18 2007, 22:08:04)
[GCC 4.0.1 (Apple Computer, Inc. build 5367)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
Welcome to rlcompleter2 0.96
for nice experiences hit <tab> multiple times
 >>>


But I doubt this changes anything.

Diez



More information about the Python-list mailing list