Meskipun dokumen tidak menyebutkannya secara eksplisit, saya kira itu mungkin untuk menjalankan Mayavi di IPython (v. 2.0.0) dengan qt...
$ 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
Seharusnya baik-baik saja jika Anda (1) menginstal pyside dan (2) menghapus instalan PyQt atau juga mengatur QT_API=pyside
Tidak! Anda hanya perlu menyetel sip ke API #2 sebelum ipython memulainya qt event loop (biasanya saat mengimpor matplotlib). Anda dapat melakukannya menggunakan variabel lingkungan, argumen baris perintah, atau secara terprogram.
Selanjutnya, jika Anda menggunakan IDE seperti spyder, Anda dapat mengaturnya secara otomatis.
Ini dapat membantu: http://ipython.readthedocs.org/en/stable/interactive/reference.html#pyqt -and-pyside
Tidak yakin apakah itu benar-benar bug, tetapi tidak benar-benar komunikatif, jadi setidaknya "diperbaiki oleh doc" atau "diperbaiki oleh pesan kesalahan".
IMHO, ini bukan bug tetapi kita harus menambahkan tautan ipython doc ini ke mayavi doc dan menyebutkan flag --gui=qt
tergantung pada backend PySide/PyQt (setidaknya di sini: http://docs.enthought.com/ mayavi/mayavi/mlab.html dan ada beberapa tempat lain)
Saya sekarang ini sudah ditutup, tetapi saya tidak ingin membuka masalah baru, karena sepertinya sudah terpecahkan. Namun, saya mencoba melakukan semua yang saya baca di sini (mengubah ETS_TOOLKIT
dan QT_API
) dan di tautan yang disediakan, tetapi kesalahan terus berlanjut.
Saya menggunakan mayavi 4.5.0 py27_0
dengan python 2.7.12
, semua diinstal melalui conda
. Saya mencoba menggunakan ipython
dan juga di jupyter notebook
, tetapi itu menunjukkan pesan yang sama ( API 'QString' has already been set to version 1
).
Saya benar-benar tidak tahu apa yang saya lewatkan untuk menyelesaikan ini.
@victortxa -- dapatkah Anda juga melihat diskusi di #532.