Mayavi: Сохранение файла PDF в OS X 10.11 приводит к созданию поврежденного файла zip.

Созданный на 21 июн. 2016  ·  7Комментарии  ·  Источник: enthought/mayavi

Когда Mayavi установлен через Conda, запустите следующий скрипт в Jupyter Notebook:

% gui qt
от Mayavi Import mlab
mlab.test_flow ()

затем щелкнув графический интерфейс, чтобы сохранить сцену, если я установил вывод файла как «snapshot.pdf», я получаю сообщение об ошибке в терминале, открывшем записную книжку:

2016-06-21 12: 03: 43.383 python [44385: 6652218] modalSession был преждевременно завершен - проверьте повторный вызов endModalSession:

и файл PDF не создается - остается файл с именем snapshot.pdf.gz.

Среда, в которой я работаю, здесь:
env.txt

Все 7 Комментарий

В этой процедуре задействовано несколько модулей, и из вывода ошибок неясно, в чем причина сбоя.

Можете ли вы воспроизвести проблему без использования ноутбука из обычного приглашения ipython?
Можете ли вы воспроизвести ошибку с помощью WX?

Вы также должны запустить тесты (это может помочь сузить проблему)

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

Привет еще раз,

При запуске тестов tvtk возникает следующая ошибка:

ОШИБКА: проверьте, все ли атрибуты с MinValue / MaxValue являются чертами

Отслеживание (последний вызов последний):
Файл "/Users/ryan/anaconda3/envs/mayavi/lib/python2.7/site-packages/tvtk/tests/test_tvtk.py", строка 917, в test_trait_with_range
vtk_attr_name)
Файл "/Users/ryan/anaconda3/envs/mayavi/lib/python2.7/site-packages/tvtk/tests/test_tvtk.py", строка 899, в get_min_max_value
return (getattr (vtk_klass (), get_min_method) (),
SystemError: возврат ошибки без набора исключений


Выполнить 106 тестов за 30,976 с.

СБОЙ (ПРОПУСК = 3, ошибки = 1)

И я не получаю ошибок по тестам MayaVi.

Пробуя его с консоли jupyter, я получаю немного другую ошибку:

2016-06-21 14: 12: 20.658 python [45411: 6739252] modalSession был преждевременно завершен - проверьте наличие повторного вызова endModalSession:
Информация GL2PS: переполнение буфера обратной связи OpenGL

ВНИМАНИЕ: ядро ​​не ответило на is_complete_request. Установка use_kernel_is_complete в False.

Я не могу работать с Wx, так как при попытке установить это в качестве графического интерфейса я получаю следующую ошибку:

Произошло исключение, используйте% tb, чтобы увидеть полную трассировку.

SystemExit: этой программе требуется доступ к экрану.
Пожалуйста, запускайте со сборкой Python на платформе Framework, и только когда вы
вошли в систему на главном экране вашего Mac.

Для выхода: используйте «exit», «quit» или Ctrl-D.

Спасибо за информацию,

Обратите внимание, что на данный момент у меня нет Mac OS для тестирования (я не являюсь пользователем Mac), поэтому, если вы можете попробовать еще несколько вещей, это поможет мне отладить проблему позже.

Проверьте, все ли атрибуты с MinValue / MaxValue являются чертами

Несмотря на то, что неудачно завершать тесты, я не думаю, что эта ошибка связана с вашей проблемой.

Пробуя его с консоли jupyter, я получаю немного другую ошибку:

Ошибка OpenGL странная, и непонятно, откуда она взялась (без отслеживания).
Можно ли запускать команды из приглашения python чтобы избежать взаимодействия консоли jupyter с приложением Qt и выводом.

Я не могу работать с Wx, так как при попытке установить это в качестве графического интерфейса я получаю следующую ошибку:

Я вижу, что вы используете wxpython 3.0. Обратите внимание, что поддержка python 3.0 была добавлена ​​в traitsui 5.0.0. Поэтому я бы посоветовал, поскольку вы используете последнюю версию для mayavi, вам также следует использовать последние версии для traitsui, traits и pyface, apptools и envisage.

Наконец, последнее сообщение (на wx) заставляет меня думать, что мы запускаем python на безголовой машине (или, возможно, в контейнере), это правда?

Спасибо за помощь.

Обновить

В Windows 10 с python 2.7.10 (64 бит) и vtk 6.3 я получаю ошибку segfault. Похоже, проблема не связана с mac osx. Скоро предоставлю дополнительную информацию.

@ryanpepper похоже, что tvtk.GL2PSExporter() не работает при попытке write файла pdf. Это может быть ошибка vtk или tvtk, но мы не сможем узнать наверняка без дальнейшего расследования. Обычный экспорт ps должен работать как обходной путь

@itziakos Отлично, спасибо за расследование.

@ryanpepper - это действительно работает, но похоже, что есть странная проблема VTK, когда VTK сохраняет snapshot.pdf.gz, когда файл действительно является PDF-файлом со сжатым содержимым, поэтому, если вы просто переименуете файл в snapshot.pdf, он должен отобразить просто отлично. Если вы отключите сжатие во всплывающем диалоговом окне, это также будет работать, но файл будет больше, хотя файл будет сохранен как snapshot.pdf. :( Я закрываю это, так как это похоже на проблему VTK с тем, как он сохраняет файл. Одним из хакерских исправлений было бы проверить, сохранен ли файл как * .pdf.gz и переместить его, но это похоже на взлом, но я ' Я сделаю это. Это часть https://github.com/enoughtt/mayavi/pull/416 Я внесу еще несколько исправлений, если это необходимо, но пока закрываю эту проблему.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги