Mayavi: Mayavi mit IPython und Qt

Erstellt am 12. Apr. 2014  ·  7Kommentare  ·  Quelle: enthought/mayavi

Obwohl die Dokumentation es nicht explizit erwähnt, sollte es meiner Meinung nach möglich sein, Mayavi in ​​IPython (v. 2.0.0) mit qt auszuführen ... aber

$ 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

Alle 7 Kommentare

Sollte in Ordnung sein, wenn Sie (1) pyside installieren und (2) entweder PyQt deinstallieren oder auch QT_API=pyside festlegen

Nein! Sie müssen lediglich sip auf API #2 setzen, bevor ipython die qt-Ereignisschleife startet (normalerweise beim Importieren von Matplotlib). Sie können dies mithilfe von Umgebungsvariablen, Befehlszeilenargumenten oder programmgesteuert tun.
Wenn Sie eine IDE wie Spyder verwenden, können Sie dies außerdem automatisch einstellen.

Ich bin mir nicht sicher, ob es sich tatsächlich um einen Fehler handelt, aber es ist nicht wirklich kommunikativ, also ist es zumindest entweder ein "fix by doc" oder ein "fix by error message".

IMHO, das ist kein Fehler, aber wir sollten diesen Ipython-Doc-Link zum Mayavi-Doc hinzufügen und erwähnen, dass das --gui=qt Flag vom PySide/PyQt-Backend abhängt (zumindest hier: http://docs.enthought.com/ mayavi/mayavi/mlab.html und es gibt ein paar andere Orte)

Ich habe das jetzt geschlossen, aber ich möchte kein neues Problem eröffnen, da es gelöst aussieht. Ich habe jedoch versucht, alles zu tun, was ich hier gelesen habe (Änderung von ETS_TOOLKIT und QT_API ) und in den bereitgestellten Links, aber der Fehler bleibt bestehen.
Ich verwende mayavi 4.5.0 py27_0 mit python 2.7.12 , alle über conda installiert. Ich habe versucht, ipython und auch in jupyter notebook , aber es zeigt die gleiche Meldung ( API 'QString' has already been set to version 1 ).
Ich weiß wirklich nicht, was mir fehlt, um das zu lösen.

@victortxa – kannst du auch die Diskussion in #532 sehen.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen