title: Python3 crash when creating HDF5 file via H5Py
body: <p>I'm working to migrate code from an existing, working Python 2.7 application into Python 3.  This is running on Windows 7, and using the Anaconda distribution.</p>
  
  <p>In that code, I generate HDF5 files using H5Py and NumPy.  The code works fine in Python 2.7, but in Python 3.4 (H5Py 2.5) the code segfaults on <code>h5.create_dataset()</code>.</p>
  
  <p>Below is my minimum, replicating test case:</p>
  
  <pre><code>import h5py
  import numpy
  import tempfile
  
  data = [(1,2,3) for x in range(100)]
  dtypes=[('one',numpy.dtype(int),),('two',numpy.dtype(int),), ('three',numpy.dtype(int),)]
  
  tmp = tempfile.NamedTemporaryFile(delete=False)
  filename = tmp.name
  h5 = None
  try:
      with h5py.File(filename,'w') as h5:
          print('Creating NumPY array')
          z = numpy.array(data, dtype=dtypes)
  
          print('Creating dataset')
          dset = h5.create_dataset('test', data=z) #python crashes here.
  except Exception as e:
      print(e)
  finally:
      if h5:
          h5.close()
  
  print('Python never reaches here.')
  </code></pre>
  
  <p>If I discard the <code>dtypes</code>, for the NumPy array, then the code works.  But I require the <code>dtype</code> settings (in my full application, this array is dynamically generated based on the data at hand).</p>
  
  <p>ie, If I change</p>
  
  <pre><code>z = numpy.array(data, dtype=dtypes)
  </code></pre>
  
  <p>to</p>
  
  <pre><code>z = numpy.array(data)
  </code></pre>
  
  <p>The code works.</p>
  
  <p>I've attempted to encode the <code>dtype</code> type names (ie, 'one', 'two', 'three'), in various ways, thinking maybe the unicode in Py3 strings was the problem.  Instead, NumPy produced exceptions and failed to create the data array.</p>
  
  <p>Clearly I'm doing something wrong.  Can someone help me out here?</p>