creating exe independiente usando pyinstaller con mayavi import

Tengo un programa que ayuda a visualizar algunos datos en 3D al trazar una superficie y una nube de puntos para ver cómo se relacionan con la superficie. Para la visualización estoy usando mayavi ya que fue fácil de configurar y funciona mejor que matplotlib en 3D. El programa funciona muy bien cuando lo ejecuto en mi entorno de Python y hace hermosas visualizaciones. Sin embargo, necesito distribuir esto a algunas personas que no tienen Python y preferirían no tener que instalar Python y todos los complementos en cada computadora, por lo que he estado usando pyinstaller para crear archivos .exe independientes que puede ejecutarse después de desarrollar un programa.

Para referencia, todo esto se hace en Windows 10, Python 3.6, pyqt 4.11.4, pyface 6.0.0, rasgos 4.6.0, pyinstaller 3.3.1, mayavi 4.5.0 + vtk81. Casi todos los módulos que uso se instalaron usando pip.

El problema es que parece que no puedo obtener un exe que funcione si uso / importo el módulo mayavi. He estado leyendo mucha documentación de Github en diferentes archivos de gancho e importaciones ocultas y cada vez que soluciono un error aparece otro. Todo comenzó con scipy, pero creo que ya funcionó. Así que tengo algunas preguntas que podrían ayudarme a resolver el problema:

1) ¿Alguien ha creado con éxito un exe independiente usando pyinstaller con una importación mayavi (específicamentefrom mayavi import mlab)? ¿¡¿Cual es tu secreto?!

Esto parece similar, pero aún no he podido resolverlo ... SO_link

He usado los siguientes enlaces scipy, h5py, pandas, rasgos / qt4, ETS_TOOLKIT) para agregar importaciones ocultas o solucionar otros problemas, pero ahora estoy atascado después de configurar mi ETS_TOOLKIT = qt4. Antes de configurarlo, obtendría un error de pyface / rasgosRuntimeError: No traitsui.toolkits plugin found for toolkit null, pero ahora dice lo mismo para qt4 en lugar de nulo. Tengo qt4 instalado, así que no entiendo que ... Está en la función import_toolkit en pyface / base_toolkit.py.

2) ¿Hay una mejor ruta a seguir en términos de visualización 3D / creación de exe? Necesito un programa 3D que pueda representar con precisión si los puntos están delante o detrás de la superficie y poder rotar / hacer zoom / desplazarse de forma interactiva, además de que debe ser intuitivo. Mayavi tenía comandos muy simples similares a matplotlib, pero otros parecen muy complicados para resolver cómo la UI interactúa con todo.

3) ¿Cómo interpreto todos estos códigos de error que obtengo? Por lo general, son bastante crípticos y dicen que cierta línea arrojó una excepción anidada en otras 10 llamadas a funciones y parece muy difícil retroceder donde exactamente salieron las cosas, especialmente cuando no aparece nada en Google que parece estar relacionado.

EDITA

Aunque todavía estoy muy confundido, he podido cambiar dónde se produce el error. Después del rastreo, comenté una línea que establece el color del marcador en traitsui / editors / code_editor.py (línea 49), momento en el cual la excepción comenzó la próxima vez que se llamó al método Color ... pero aún obtengo el mismo Error de tiempo de ejecución. Eso no me dice mucho más que todavía estoy buscando qué importación oculta necesito incluir para que esto funcione.

También tenga en cuenta que obtengo exactamente el mismo error con PyInstaller y cx_Freeze, en caso de que eso ayude ...

Edit 2

Ahora lo he intentado usando anaconda para python 2.7, MISMO PROBLEMA EXACTO ..... Estoy empezando a creer que el universo no quiere que esto suceda. ¿Hay algún otro lugar donde deba plantear este problema? He publicado en el traitsui GitHub pero eso no fue muy útil. Esto parece ser más grande que pyinstaller / cx_freeze ya que ocurre en ambos ...

Respuestas a la pregunta(1)

Su respuesta a la pregunta