Mayavi: Salvar o arquivo PDF no OS X 10.11 resulta na produção de um arquivo zip corrompido

Criado em 21 jun. 2016  ·  7Comentários  ·  Fonte: enthought/mayavi

Com o Mayavi instalado através do Conda, executando o seguinte script em um Notebook Jupyter:

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

em seguida, clicando na GUI para salvar a cena, se eu definir a saída do arquivo como "snapshot.pdf", recebo uma mensagem de erro no terminal que abriu o notebook:

2016-06-21 12: 03: 43.383 python [44385: 6652218] modalSession foi encerrado prematuramente - verifique se há uma chamada reentrante para endModalSession:

e nenhum arquivo PDF é criado - resta um arquivo chamado snapshot.pdf.gz.

O ambiente em que estou trabalhando aqui:
env.txt

bug

Todos 7 comentários

Há vários módulos envolvidos neste procedimento e não está claro a partir da saída de erro qual é o motivo da falha.

Você pode reproduzir o problema sem usar o notebook em um prompt normal do ipython?
Você pode reproduzir o erro usando o WX?

Você também deve executar os testes (pode ajudar a restringir o problema)

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

Oi de novo,

Ao executar os testes tvtk, tenho o seguinte erro:

ERROR: Teste se todos os atributos com MinValue / MaxValue são características

Traceback (última chamada mais recente):
Arquivo "/Users/ryan/anaconda3/envs/mayavi/lib/python2.7/site-packages/tvtk/tests/test_tvtk.py", linha 917, em test_trait_with_range
vtk_attr_name)
Arquivo "/Users/ryan/anaconda3/envs/mayavi/lib/python2.7/site-packages/tvtk/tests/test_tvtk.py", linha 899, em get_min_max_value
return (getattr (vtk_klass (), get_min_method) (),
SystemError: retorno de erro sem conjunto de exceção


Executou 106 testes em 30.976s

FALHOU (SKIP = 3, erros = 1)

E não recebo nenhum erro nos testes do MayaVi.

Ao tentar no console jupyter, recebo um erro um pouco diferente:

2016-06-21 14: 12: 20.658 python [45411: 6739252] modalSession foi encerrado prematuramente - verifique se há uma chamada reentrante para endModalSession:
Informações do GL2PS: estouro do buffer de feedback do OpenGL

AVISO: O kernel não respondeu a um is_complete_request. Definindo use_kernel_is_complete como falso.

Não consigo executar usando Wx, pois recebo o seguinte erro quando tento definir isso como a GUI:

Ocorreu uma exceção, use% tb para ver o rastreamento completo.

Sair do sistema: este programa precisa acessar a tela.
Execute com uma versão do Framework de python, e somente quando você estiver
conectado na tela principal do seu Mac.

Para sair: use 'exit', 'quit' ou Ctrl-D.

Obrigado pela informação,

Por favor, note que no momento eu não tenho um mac os disponível para teste (eu não sou um usuário mac), então se você puder tentar mais algumas coisas para mim vai me ajudar a depurar o problema mais tarde.

Teste se todos os atributos com MinValue / MaxValue são características

Embora não seja bom falhar nos testes, não acho que esse erro esteja relacionado ao seu problema.

Ao tentar no console jupyter, recebo um erro um pouco diferente:

O erro sobre OpenGL é estranho e não está claro de onde ele está vindo (sem rastreamento).
É possível executar os comandos a partir de um prompt python para evitar que o console jupyter interaja com o aplicativo Qt e a saída.

Não consigo executar usando Wx, pois recebo o seguinte erro quando tento definir isso como a GUI:

Vejo que você está usando wxpython 3.0. Observe que o suporte para python 3.0 foi adicionado no traitsui 5.0.0. Então, eu sugeriria que, uma vez que você está usando a versão mais recente para mayavi, você também deve usar as versões mais recentes para traitsui, traits e pyface, apptools e prever.

Finalmente, a última mensagem (no wx) me faz pensar que estamos executando o python em uma máquina sem cabeçote (ou talvez um contêiner). É verdade?

Obrigado pela ajuda.

atualizar

No windows 10 com python 2.7.10 (64 bits) e vtk 6.3 recebo um segfault. Portanto, parece que o problema não está relacionado ao mac osx. Fornecerá mais informações em breve.

@ryanpepper parece que o tvtk.GL2PSExporter() falha ao tentar write o arquivo pdf. Pode ser um bug vtk ou tvtk, mas não será possível saber com certeza sem mais investigação. A exportação normal de ps deve funcionar como uma solução alternativa

@itziakos Ótimo, obrigado por investigar.

@ryanpepper - ele realmente funciona, mas parece que há um problema estranho de VTK em que o VTK salva um snapshot.pdf.gz quando o arquivo é na verdade um PDF com conteúdo compactado, então se você apenas renomear o arquivo para snapshot.pdf ele deve renderizar apenas multar. Se você desativar a compactação na caixa de diálogo que aparece, isso também funcionará, mas o arquivo será maior, embora o arquivo seja salvo como um snapshot.pdf. :( Estou fechando isso porque parece um problema de VTK com o modo como ele salva o arquivo. Uma correção seria testar se o arquivo está salvo como * .pdf.gz e movê-lo, mas parece um hack, mas eu ' Eu vou fazer isso. É parte de https://github.com/enthought/mayavi/pull/416 Eu irei enviar mais algumas correções para isso, se necessário, mas por agora estou encerrando este problema.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

Make42 picture Make42  ·  7Comentários

Kekushke picture Kekushke  ·  9Comentários

indranilsinharoy picture indranilsinharoy  ·  9Comentários

GaelVaroquaux picture GaelVaroquaux  ·  13Comentários

aestrivex picture aestrivex  ·  9Comentários