title: String arguments in Python multiprocessing
body: <p>I'm trying to pass a string argument to a target function in a process.  Somehow, the string is interpreted as a list of as many arguments as there are characters.</p>
  <p>This is the code:</p>
  <pre><code>import multiprocessing
  
  def write(s):
     print s
  
  write('hello')
  
  p = multiprocessing.Process(target=write, args=('hello'))
  
  p.start()
  </code></pre>
  <p>I get this output:</p>
  <pre class="lang-none prettyprint-override"><code>hello
  Process Process-1:
  Traceback (most recent call last):
  &gt;&gt;&gt;   File &quot;/usr/local/lib/python2.5/site-packages/multiprocessing/process.py&quot;, line 237, in _bootstrap
      self.run()
    File &quot;/usr/local/lib/python2.5/site-packages/multiprocessing/process.py&quot;, line 93, in run
      self._target(*self._args, **self._kwargs)
  TypeError: write() takes exactly 1 argument (5 given)
  
  &gt;&gt;&gt;
  </code></pre>
  <p>What am I doing wrong? How am I supposed to pass a string?</p>