ドキュメントには明示的に記載されていませんが、Qtを使用してIPython(v。2.0.0)でMayaviを実行できるはずです...しかし
$ ETS_TOOLKIT=qt4 ipython2 --gui=qt4 -c 'from mayavi import mlab'
<...>
/usr/lib/python2.7/site-packages/pyface/qt/__init__.py in prepare_pyqt4()
15 # Set PySide compatible APIs.
16 import sip
---> 17 sip.setapi('QString', 2)
18 sip.setapi('QVariant', 2)
19
ValueError: API 'QString' has already been set to version 1
(1)pysideをインストールし、(2)PyQtをアンインストールするか、 QT_API=pyside
設定する場合は、問題ないはずです。
番号! ipythonがqtイベントループを開始する前に(通常はmatplotlibをインポートする場合)、sipをAPI#2に設定する必要があります。 これは、環境変数、コンマ行引数を使用して、またはプログラムで行うことができます。
さらに、スパイダーのようなIDEを使用している場合は、これを自動的に設定できます。
これは役立つかもしれません: http ://ipython.readthedocs.org/en/stable/interactive/reference.html#pyqt -and-pyside
それが実際にバグであるかどうかはわかりませんが、実際には伝達的ではないため、少なくとも「ドキュメントによる修正」または「エラーメッセージによる修正」のいずれかです。
私見、これはバグではありませんが、このipythonドキュメントリンクをmayavi docに追加し、 --gui=qt
フラグがPySide / PyQtバックエンドに依存することを言及する必要があります(少なくともここ:http://docs.enthought.com/ mayavi / mayavi / mlab.htmlそして他にもいくつかの場所があります)
現在、これはクローズされていますが、解決されたように見えるため、新しい問題を開きたくありません。 ただし、ここで読んだすべてのこと( ETS_TOOLKIT
とQT_API
)と提供されたリンクを実行しようとしましたが、エラーが発生し続けます。
mayavi 4.5.0 py27_0
とpython 2.7.12
、すべてconda
介してインストールされています。 ipython
とjupyter notebook
を使用してみましたが、同じメッセージ( API 'QString' has already been set to version 1
)が表示されます。
私はこれを解決するために何が欠けているのか本当にわかりません。
@ victortxa- #532のディスカッションもご覧いただけますか。