Mayavi: Guardar un archivo PDF en OS X 10.11 da como resultado la producción de un archivo zip dañado

Creado en 21 jun. 2016  ·  7Comentarios  ·  Fuente: enthought/mayavi

Con Mayavi instalado a través de Conda, ejecutando el siguiente script en un Jupyter Notebook:

% gui qt
de mayavi import mlab
mlab.test_flow ()

luego haciendo clic en la GUI para guardar la escena, si configuro la salida del archivo como "snapshot.pdf", aparece un mensaje de error en la terminal que abrió el cuaderno:

2016-06-21 12: 03: 43.383 python [44385: 6652218] modalSession se ha salido prematuramente; compruebe si hay una llamada reentrante a endModalSession:

y no se crea ningún archivo PDF; queda un archivo llamado snapshot.pdf.gz.

El entorno en el que estoy trabajando aquí:
env.txt

bug

Todos 7 comentarios

Hay varios módulos involucrados en este procedimiento y, a partir de la salida de error, no queda claro cuál es el motivo del error.

¿Puede reproducir el problema sin usar el portátil desde un indicador de ipython normal?
¿Puedes reproducir el error usando WX?

También debe ejecutar las pruebas (podría ayudar a reducir el problema)

# probably need to run these from site-packages
python -um nose.core -v tvtk
python -um nose.core -v mayavi

Hola de nuevo,

Al ejecutar las pruebas de tvtk, tengo el siguiente error:

ERROR: prueba si todos los atributos con MinValue / MaxValue son rasgos

Rastreo (llamadas recientes más última):
Archivo "/Users/ryan/anaconda3/envs/mayavi/lib/python2.7/site-packages/tvtk/tests/test_tvtk.py", línea 917, en test_trait_with_range
vtk_attr_name)
Archivo "/Users/ryan/anaconda3/envs/mayavi/lib/python2.7/site-packages/tvtk/tests/test_tvtk.py", línea 899, en get_min_max_value
return (getattr (vtk_klass (), get_min_method) (),
SystemError: retorno de error sin conjunto de excepciones


Realizó 106 pruebas en 30.976 s

FALLIDO (SALTAR = 3, errores = 1)

Y no obtengo ningún error en las pruebas de MayaVi.

Probándolo desde la consola jupyter obtengo un error ligeramente diferente:

2016-06-21 14: 12: 20.658 python [45411: 6739252] modalSession se ha salido de forma prematura; compruebe si hay una llamada reentrante a endModalSession:
Información GL2PS: desbordamiento del búfer de retroalimentación OpenGL

ADVERTENCIA: El kernel no respondió a una is_complete_request. Estableciendo use_kernel_is_complete en False.

No puedo ejecutar usando Wx ya que obtengo el siguiente error cuando intento configurarlo como GUI:

Se ha producido una excepción, utilice% tb para ver el rastreo completo.

Salida del sistema: este programa necesita acceder a la pantalla.
Ejecute con una compilación de Framework de python, y solo cuando esté
iniciado sesión en la pantalla principal de su Mac.

Para salir: use 'salir', 'salir' o Ctrl-D.

Gracias por la info,

Tenga en cuenta que en este momento no tengo un sistema operativo mac disponible para probar (no soy un usuario de mac), por lo que si puede probar algunas cosas más, me ayudará a depurar el problema más adelante.

Pruebe si todos los atributos con MinValue / MaxValue son rasgos

Aunque no es bueno fallar las pruebas, no creo que este error esté relacionado con tu problema.

Probándolo desde la consola jupyter obtengo un error ligeramente diferente:

El error sobre OpenGL es extraño y no está claro de dónde viene (sin rastreo).
¿Es posible ejecutar los comandos desde un indicador python para evitar que la consola jupyter interactúe con la aplicación Qt y la salida?

No puedo ejecutar usando Wx ya que obtengo el siguiente error cuando intento configurarlo como GUI:

Veo que está utilizando wxpython 3.0. Tenga en cuenta que se agregó soporte para python 3.0 en traitsui 5.0.0. Así que sugiero que, dado que está utilizando la última versión de mayavi, también debería utilizar las últimas versiones para traitsui, traits y pyface, apptools y envisage.

Finalmente, el último mensaje (en wx) me hace pensar que estamos ejecutando Python en una máquina sin cabeza (o tal vez en un contenedor), ¿es así?

Gracias por la ayuda.

actualizar

En Windows 10 con python 2.7.10 (64bit) y vtk 6.3 obtengo un segfault. Entonces parece que el problema no está relacionado con mac osx. Proporcionará más información pronto.

@ryanpepper parece que el tvtk.GL2PSExporter() falla cuando intenta write el archivo pdf. Puede ser un error de vtk o tvtk, pero no podrá saberlo con certeza sin más investigación. La exportación normal ps debería funcionar como una solución alternativa

@itziakos Genial, gracias por investigar.

@ryanpepper : en realidad funciona, pero parece que hay un extraño problema de VTK donde VTK guarda un snapshot.pdf.gz cuando el archivo es realmente un PDF con contenido comprimido, por lo que si simplemente cambia el nombre del archivo a snapshot.pdf, debería renderizarse solo multa. Si desactiva la compresión en el cuadro de diálogo que aparece, también funcionará, pero el archivo será más grande, aunque el archivo se guardará como snapshot.pdf. :( Estoy cerrando esto ya que parece un problema de VTK con la forma en que guarda el archivo. Una solución hacky sería probar si el archivo se guarda como * .pdf.gz y moverlo, pero eso parece un truco, pero yo ' Lo haré. Es parte de https://github.com/enthought/mayavi/pull/416 Si es necesario, introduciré algunas correcciones más, pero por ahora estoy cerrando este problema.

¿Fue útil esta página
0 / 5 - 0 calificaciones