title: What does `Fatal Python error: PyThreadState_Get: no current thread` mean?
body: <p>I am passing an mpi communicator from python to C. I chose to use boost's mpi communicator as mpi4py does not seem to have good C support. Check it out:</p>
  
  <pre><code>        try: from boost.mpi import world
          except ImportError: from mpi import world
          err = run_with_mpi(infile, world, stdout, stderr, exc)
  </code></pre>
  
  <p>On systems where boost.mpi is installed, this raises no errors. However, boost.mpi cannot be installed on mac. I installed boost's mpi.so module using homebrew's boost155 formula then added the .so file to pythonpath. </p>
  
  <p>Generally, what does <code>Fatal Python error: PyThreadState_Get: no current thread</code> mean? What clues does this message give to developers like myself?</p>
  
  <p>Full error message:</p>
  
  <pre><code>Fatal Python error: PyThreadState_Get: no current thread
  [kilojoules-20160s:64471] *** Process received signal ***
  [kilojoules-20160s:64471] Signal: Abort trap: 6 (6)
  [kilojoules-20160s:64471] Signal code:  (0)
  [kilojoules-20160s:64471] *** End of error message ***
  </code></pre>