Mayavi: OS X 10.11でPDFファイルを保存すると、破損したzipファイルが生成されます

作成日 2016年06月21日  ·  7コメント  ·  ソース: enthought/mayavi

Condaを介してMayaviをインストールし、JupyterNotebookで次のスクリプトを実行します。

%gui qt
マヤビからインポートmlab
mlab.test_flow()

次に、GUIをクリックしてシーンを保存します。ファイル出力を「snapshot.pdf」として設定すると、ノートブックを開いたターミナルにエラーメッセージが表示されます。

2016-06-21 12:03:43.383 python [44385:6652218] modalSessionが途中で終了しました-endModalSessionへの再入可能な呼び出しを確認してください:

PDFファイルは作成されません。snapshot.pdf.gzというファイルが残ります。

私がここで彼の中で働いている環境:
env.txt

bug

全てのコメント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:例外セットなしでエラーが返される


30.976秒で106テストを実行しました

失敗(SKIP = 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をGUIとして設定しようとすると、次のエラーが発生するため、Wxを使用して実行できません。

例外が発生しました。%tbを使用して完全なトレースバックを確認してください。

SystemExit:このプログラムは画面にアクセスする必要があります。
Pythonのフレームワークビルドで実行してください。
Macのメインディスプレイにログインしました。

終了するには:「exit」、「quit」、またはCtrl-Dを使用します。

情報をありがとう、

現時点では、テストに使用できるmac osがないことに注意してください(私はmacユーザーではありません)。そのため、さらにいくつか試してみると、後で問題をデバッグするのに役立ちます。

MinValue / MaxValueを持つすべての属性が特性であるかどうかをテストします

テストに失敗するのは良くありませんが、このエラーがあなたの問題に関連しているとは思いません。

jupyterコンソールから試してみると、わずかに異なるエラーが発生します。

OpenGLに関するエラーは奇妙で、どこから来ているのか明確ではありません(トレースバックなし)。
pythonプロンプトからコマンドを実行して、jupyterコンソールがQtアプリケーションおよび出力と対話するのを回避することは可能ですか?

WxをGUIとして設定しようとすると、次のエラーが発生するため、Wxを使用して実行できません。

wxpython3.0を使用しているようです。 python3.0のサポートがtraitsui5.0.0で追加されたことに注意してください。 したがって、mayaviには最新バージョンを使用しているので、traitsui、traits and pyface、apptools、およびenvisageにも最新バージョンを使用することをお勧めします。

最後に、(wxの)最後のメッセージは、ヘッドレスマシン(またはおそらくコンテナ)でPythonを実行していると私に思わせます。それは本当ですか?

助けてくれてありがとう。

更新

python 2.7.10(64ビット)およびvtk6.3を搭載したWindows10では、セグメンテーション違反が発生します。 したがって、この問題はmacosxとは関係がないようです。 すぐに詳細を提供します。

@ryanpepper pdfファイルをwriteしようとすると、 tvtk.GL2PSExporter()が失敗したように見えます。 これはvtkまたはtvtkのバグである可能性がありますが、さらに調査しないと確実に知ることはできません。 通常のpsエクスポートは回避策として機能するはずです

@itziakos調査していただき、ありがとう

@ ryanpepper-実際には機能しますが、ファイルが実際には圧縮されたコンテンツを含むPDFである場合、VTKがsnapshot.pdf.gzを保存するという奇妙なVTKの問題があるようです。したがって、ファイルの名前をsnapshot.pdfに変更すると、次のようにレンダリングされます。結構です。 ポップアップするダイアログで圧縮をオフにすると、それも機能しますが、ファイルはsnapshot.pdfとして保存されますが、ファイルは大きくなります。 :(これはファイルの保存方法に関するVTKの問題のように見えるので、これを閉じます。1つのハッキーな修正は、ファイルが* .pdf.gzとして保存されているかどうかをテストして移動することですが、それはハックのようですが、私はhttps://github.com/enthought/mayavi/pull/416の一部です。必要に応じてさらに修正を加えますが、今のところこの問題を解決しています。

このページは役に立ちましたか?
0 / 5 - 0 評価