Mayavi: Mayavi avec IPython et Qt

Créé le 12 avr. 2014  ·  7Commentaires  ·  Source: enthought/mayavi

Bien que la documentation ne le mentionne pas explicitement, je suppose qu'il devrait être possible d'exécuter Mayavi dans IPython (v. 2.0.0) avec qt ... mais

$ 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
bug

Tous les 7 commentaires

Cela devrait aller si vous (1) installez pyside et (2) désinstallez PyQt ou définissez également QT_API=pyside

Non! Vous devez simplement définir sip sur l'API #2 avant qu'ipython ne démarre la boucle d'événement qt (généralement lors de l'importation de matplotlib). Vous pouvez le faire en utilisant des variables d'environnement, des arguments de ligne de commande ou par programmation.
De plus, si vous utilisez un IDE comme Spyder, vous pouvez le définir automatiquement.

Je ne sais pas s'il s'agit en fait d'un bogue, mais ce n'est pas vraiment communicatif, c'est donc soit un "correctif par doc" ou un "correctif par message d'erreur" au moins.

À mon humble avis, ce n'est pas un bogue mais nous devrions ajouter ce lien doc ipython à la doc mayavi et mentionner que le drapeau --gui=qt dépend du backend PySide/PyQt (au moins ici : http://docs.enthought.com/ mayavi/mayavi/mlab.html et il y a quelques autres endroits)

Je maintenant ceci est fermé, mais je ne veux pas ouvrir un nouveau problème, car il semble résolu. Cependant, j'ai essayé de faire tout ce que j'ai lu ici (en changeant ETS_TOOLKIT et QT_API ) et dans les liens fournis, mais l'erreur persiste.
J'utilise mayavi 4.5.0 py27_0 avec python 2.7.12 , tous installés via conda . J'ai essayé d'utiliser ipython et aussi dans jupyter notebook , mais il affiche le même message ( API 'QString' has already been set to version 1 ).
Je ne sais vraiment pas ce qui me manque pour résoudre ce problème.

@victortxa -- pouvez-vous également voir la discussion dans #532.

Cette page vous a été utile?
0 / 5 - 0 notes