Mayavi: tvtkシーンウィンドウが空白/無応答

作成日 2017年07月27日  ·  15コメント  ·  ソース: enthought/mayavi

import os
assert(os.environ['ETS_TOOLKIT'] == 'qt4')
from mayavi import mlab
mlab.test_plot3d()

空白/応答しない図ウィンドウを生成します
image

私のシステム情報は次のとおりです。

プラットフォーム:Linux-4.4.0-87-generic-x86_64-with-debian-stretch-sid
Python:2.7.13 | Continuum Analytics、Inc。| (デフォルト、2016年12月20日、23:09:15)[GCC 4.4.7 20120313(Red Hat 4.4.7-1)]
実行可能ファイル:/home/ktavabi/miniconda3/envs/py2.7/bin/python
CPU:x86_64:24コア
メモリ:94.4 GB
mne:0.15.dev0
numpy:1.13.1 {lapack = mkl_intel_lp64、blas = mkl_intel_lp64}
scipy:0.19.1
matplotlib:2.0.2
sklearn:0.18.2
ニバベル:2.1.0
マヤビ:4.5.0
pycuda:2017.1
skcuda:0.5.1
パンダ:0.20.3

cc @ Eric89GXL

最も参考になるコメント

5.9.4で確認できますが、OSXではウィンドウに何も表示されません。

pip install pyqt5 --upgrade --no-deps

5.10.1にアップグレードして動作します。

全てのコメント15件

%gui qtを設定しましたか? これがバニラPythonであり、IPythonでない場合は、最後にmlab.show()を追加する必要があります。 guiツールキットを設定する必要性はここの最初に文書化されています:http: //docs.enthought.com/mayavi/mayavi/mlab.html

環境変数ETS_TOOLKIT=qt4QT_API=pyqtを設定しました
私は次のような行動をとっています:

(1)ipythonを使用する

ipython --gui=qt
from mayavi import mlab

戻り値

ValueErrorトレースバック(最後の最後の呼び出し)
()
----> 1 from mayavi import mlab

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/mayavi/mlab.py in()
25
26#マヤビの輸入
---> mayavi.tools.cameraから27インポートビュー、ロール、ヨー、ピッチ、移動
28 mayavi.tools.figureからインポート図、clf、gcf、savefig、
29描画、sync_camera、閉じる、スクリーンショット

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/mayavi/tools/camera.py in()
23#gcfはカメラ管理で循環インポートを作成するため、使用できません
24#ルーチン。
---> 25 from .engine_manager import get_engine
26
27

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/mayavi/tools/engine_manager.py in()
10
11#ローカルインポート
---> 12 from mayavi.preferences.api import Preferences_manager
13mayavi.core.registryインポートレジストリから
14 mayavi.core.engine importEngineから

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/mayavi/preferences/api.py in()
2
3#グローバルPreferenceManagerインスタンス
----> .preference_managerから4インポートpreference_manager
5 from .bindings import set_scene_preferences、get_scene_preferences

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/mayavi/preferences/preference_manager.py in()
27traits.etsconfig.apiからインポートETSConfig
28 from traits.api import HasTraits、Instance
---> 29 from traitsui.api import View、Group、Item
apptools.preferences.apiから30インポート(ScopedPreferences、IPreferences、
31 PreferencesHelper)

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/traitsui/api.py in()
34
35試してみてください:
---> 36 from .editors.api import ArrayEditor
ImportErrorを除く37:
38#ArrayEditorはnumpyに依存しているため、numpyが存在しない場合は無視してください。

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/traitsui/editors/__init__.py in()
21
22試してみてください:
---> 23 from .api import ArrayEditor
ImportErrorを除く24:
25パス

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/traitsui/editors/api.py in()
22 .button_editor import ButtonEditor
23 from .check_list_editor import CheckListEditor
---> 24 from .code_editor import CodeEditor
25 from .color_editor import ColorEditor
26 .compound_editor import CompoundEditor

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/traitsui/editors/code_editor.py in()
34#------------------------------------------------ -------------------------------
35
---> 36クラスToolkitEditorFactory(EditorFactory):
37 "" "コードエディタ用のエディタファクトリ。
38 "" "

ToolkitEditorFactory()の/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/traitsui/editors/code_editor.py
46
47#線をマーキングするための背景色
---> 48 mark_color = Color(0xECE9D8)
49
50#現在選択されている行を含むオブジェクト特性(オプション)

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/traits/traits.pyc in __call __(self、 args、*メタデータ)
520
521 def __call __(self、 args、*メタデータ):
-> 522 return self.maker_function( args、*メタデータ)
523
524クラスTraitImportError(TraitFactory):

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/traits/traits.pyc in Color( args、*メタデータ)
traitsui.toolkit_traitsからの1234はColorTraitをインポートします
1235
-> 1236 return ColorTrait( args、*メタデータ)
1237
1238 Color = TraitFactory(Color)

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/traitsui/toolkit_traits.pyc in ColorTrait( args、* traits)
5
6 def ColorTrait( args、* traits):
----> 7 return toolkit()。color_trait( args、* traits)
8
9 def RGBColorTrait( args、* traits):

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/traitsui/toolkit.pyc in toolkit(* toolkits)
ETSConfig.toolkitの場合は150:
151#ツールキットがETSConfigにすでに設定されている場合は、それを使用します。
-> 152 _toolkit = _import_toolkit(ETSConfig.toolkit)
153 return _toolkit
154その他:

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/traitsui/toolkit.pyc in _import_toolkit(name)
81
82 def _import_toolkit(name):
---> 83 return __import __(name、globals = globals()、level = 1).toolkit
84
85

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/traitsui/qt4/__init__.py in()
16#他の処理が行われる前にpyface.qtをインポートして、sipapi
17#必要に応じて正しく設定できます
---> 18インポートpyface.qt
19
20#------------------------------------------------ ----------------------------

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/pyface/qt/__init__.py in()
38
39 elif qt_api == 'pyqt':
---> 40 prepare_pyqt4()
41
42 elif qt_api!= 'pyside':

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/pyface/qt/__init__.py in prepare_pyqt4()
15#PySide互換のAPIを設定します。
16インポート一口
---> 17 sip.setapi( 'QDate'、2)
18 sip.setapi( 'QDateTime'、2)
19 sip.setapi( 'QString'、2)

ValueError:API'QDate 'はすでにバージョン1に設定されています

これまでのところ、 from pyface.qt import QtGui, QtCoreもQT_APIの設定を解除してもこれは解決されません。

(2)通常のPythonコンソールで

from mayavi import mlab
mlab.test_plot3d()

動作します!

(3)PycharmIDEのPythonコンソールで

from mayavi import mlab
mlab.test_plot3d()
mlab.show()

スニペットが機能するために必要です。

したがって、IPythonでは、IPythonがバージョンを2に設定しているように見えます。これを試すことができますか?

$ ipython

from mayavi import mlab
%gui qt
mlab.test_plot3d()

たぶん、これはIPythonが1に設定する前にQT APIを2に設定します。技術的には、ここのIPythonドキュメントによると:http: //ipython.readthedocs.io/en/stable/interactive/reference.html#pyqt -and- pysideこれは起こらないはずですが、見てみましょう。

トリックをしてくれた@prabhuramachandranに感謝します...今のところ。

バックエンド、バインディング、およびvizモジュール間の状況がそれほど流動的でなかったらいいのにと思います。 そのため、私は現在、動作状態でフリーズすることを意図している(または期待している)プロジェクトに仮想環境を使用するプラクティスを採用しようとしています。 とはいえ、ipythonやmatplotlibなどの特定の更新またはインストールの私の経験では、視覚化スタックが完全なままであるという保証はありません。 たぶんそれは私の素朴なことかもしれませんが、私はトラブルシューティングと壊れたものの修正に多くの時間を費やしていることを認めなければなりません😞したがって、開発者がどのように「環境」を正常に機能させる傾向があるかについて常に知りたいです。

参考までにcc @ kingjr @choldgraf @ Eric89GXL

そのため、開発者が「環境」を正常に機能させる傾向があることを常に知りたいと思っています。

@ choldgraf-笑!

@ kambysese-ええと、私たち自身のコードはそれほど変わっていません。 問題は、pyside、pyqt、pyqt4、pyqt5、qtdate(およびその他)、wxPython(2、3、現在は4!)があることです。 これをどこかで注意深く文書化する必要があると思います。 提案はありますか? ここに入れますか:http: //docs.enthought.com/mayavi/mayavi/mlab.html大丈夫ですか?

@prabhuramachandranなぜこれがOSXで起こっているのですか? %gui qtの魔法に関係なく

screen shot 2018-04-25 at 11 05 30 am

わからない、物事は私にとってうまく機能していません。 PyQt5のどのバージョンですか? PyQt5は私が望むほど安定していません、私は非常に頻繁に奇妙な問題を抱えています。 PyQt5(5.10.1)はOSXでは動作しますが、5.9.2にダウングレードする必要があるWindowsではクラッシュします。

PyQt5.9.2を使用しています

興味深いことに、以前は機能していましたが、ツールバーがいたるところに浮かんでいたため、PyQt5.10.1にアップグレードすると修正されました。 しかし、私は機能する視覚化を得るでしょう、それは台無しにされたツールバーだけでした。 PyQt5.10.1にアップデートしてみてください。

condaは、依存関係があるため、そのオプションに満足していません。 私は試すことができますが、何か他のものが壊れると確信しています。

私はpip install PyQt5を使用しています。

nvmd 5.9.2は、デフォルトのcondaチャネルで使用可能な最高のバージョンです。

5.9.4で確認できますが、OSXではウィンドウに何も表示されません。

pip install pyqt5 --upgrade --no-deps

5.10.1にアップグレードして動作します。

@ larsoner-ありがとう! なんて痛い。 特にappveyorのWindowsでは5.10.1を使用しないでください。

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