title: Multithreading attempt using Python 3.2.2: "AttributeError: 'str' object has no attribute '_initialized'"
body: <p>I'm running into a problem with the following Python 3.2.2 code. The code is an attempt to do some timing tests of another application I'm testing. The idea is to have another script (of any variety) get passed into the timer program and make some changes to the environment. That script should run in a separate thread, so that I can start timing from the start of the script instead of the end. The rest of this script times the application's reaction to that script. I've attempted to draw from the <code>threading</code> module documentation to create this, and I'm confident that I've read it thoroughly, but I'm consistently running into the following error using this code:</p>
  
  <pre><code>Traceback (most recent call last):
    File "&lt;stdin&gt;", line 1, in &lt;module&gt;
    File "C:\Python32\lib\threading.py", line 669, in start
      if not self._initialized:
  AttributeError: 'str' object has no attribute '_initialized'
  </code></pre>
  
  <p>Here's the thread class definition.</p>
  
  <pre><code>import threading, ...
  
  class AsyncScript(threading.Thread):
      def __init__(self, s):
          self.script = s
      def run(self):
          print ("Beginning script...")
          try:
              os.system("cmd /k " + self.script)
          except:
              sys.exit("Error running script " + self.script)
  </code></pre>
  
  <p>This is called elsewhere in the script by <code>AsyncScript.start(options.script)</code>, where the <code>options</code> class contains the options passed into the script (using the <code>argparse</code> module.)</p>
  
  <p>Any ideas about what I might be doing wrong here?</p>
  
  <hr>
  
  <p>Okay, an update. The following (stripped-down) version of the code DOES work, and I'm honestly not sure why -- I don't see the difference.</p>
  
  <pre><code>import threading
  
  class AsyncScript(threading.Thread):
      def __init__(self, s):
          threading.Thread.__init__(self)
          self.script = s
      def run(self):
          print("This would run script " + self.script)
  
  AsyncScript("sample script path string").start()
  </code></pre>
  
  <p>Output is, appropriately,</p>
  
  <blockquote>
    <p>This would run script sample script path string</p>
  </blockquote>
  
  <p>Aside from the inclusion of <code>threading.Thread.__init__(self)</code>, which I had previously included in earlier versions of this code without success, I'm not really sure what's different here. What am I missing?</p>