Mayavi: Mayavi مع IPython و Qt

تم إنشاؤها على ١٢ أبريل ٢٠١٤  ·  7تعليقات  ·  مصدر: enthought/mayavi

على الرغم من أن المستندات لا تذكرها صراحةً ، أعتقد أنه من الممكن تشغيل Mayavi في IPython (الإصدار 2.0.0) باستخدام 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
bug

ال 7 كومينتر

يجب أن يكون جيدًا إذا (1) قمت بتثبيت pyside و (2) قمت بإلغاء تثبيت PyQt أو قمت أيضًا بتعيين QT_API=pyside

لا! عليك ببساطة ضبط sip على API # 2 قبل أن يبدأ ipython حلقة الحدث qt (عادةً عند استيراد matplotlib). يمكنك القيام بذلك باستخدام متغيرات البيئة أو وسيطات سطر الأوامر أو بطريقة برمجية.
علاوة على ذلك ، إذا كنت تستخدم IDE مثل spyder ، فيمكنك ضبط هذا تلقائيًا.

لست متأكدًا مما إذا كان خطأ بالفعل ، ولكنه ليس تواصليًا حقًا ، لذلك فهو إما "إصلاح عن طريق المستند" أو "إصلاح عن طريق رسالة الخطأ" على الأقل.

IMHO ، هذا ليس خطأ ولكن يجب أن نضيف رابط ipython doc هذا إلى 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.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات