Mayavi: نوافذ المشهد tvtk فارغة / لا تستجيب

تم إنشاؤها على ٢٧ يوليو ٢٠١٧  ·  15تعليقات  ·  مصدر: enthought/mayavi

import os
assert(os.environ['ETS_TOOLKIT'] == 'qt4')
from mayavi import mlab
mlab.test_plot3d()

يولد نافذة شخصية فارغة / لا تستجيب
image

معلومات نظامي هي:

النظام الأساسي: Linux-4.4.0-87-generic-x86_64-with-debian-stretch-sid
بايثون: 2.7.13 | Continuum Analytics، Inc. | (افتراضي ، 20 كانون الأول (ديسمبر) 2016 ، 23:09:15) [GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]
الملف التنفيذي: /home/ktavabi/miniconda3/envs/py2.7/bin/python
وحدة المعالجة المركزية: x86_64: 24 نواة
الذاكرة: 94.4 جيجا بايت
شهر: 0.15
numpy: 1.13.1 {lapack = mkl_intel_lp64، blas = mkl_intel_lp64}
scipy: 0.19.1
matplotlib: 2.0.2
sklearn: 0.18.2
نيبابل: 2.1.0
مايافي: 4.5.0
بيكودا: 2017.1
سكودا: 0.5.1
الباندا: 0.20.3

سي سي @ Eric89GXL

التعليق الأكثر فائدة

يمكنني التأكيد باستخدام 5.9.4 لن تظهر النافذة أي شيء على OSX ، مع:

pip install pyqt5 --upgrade --no-deps

يقوم بالترقية إلى الإصدار 5.10.1 وهو يعمل.

ال 15 كومينتر

هل قمت بتعيين %gui qt ؟ إذا كان هذا هو Vanilla Python وليس IPython ، فستحتاج إلى إضافة mlab.show() في النهاية. تم توثيق الحاجة إلى تعيين مجموعة أدوات واجهة المستخدم الرسومية في البداية هنا: http://docs.enthought.com/mayavi/mayavi/mlab.html

قمت بتعيين متغيرات البيئة ETS_TOOLKIT=qt4 و QT_API=pyqt
أتّبع سلوكيات مختلفة:

(1) مع إبيثون

ipython --gui=qt
from mayavi import mlab

عائدات

ValueError Traceback (أحدث مكالمة أخيرة)
في()
----> 1 من مايافي استيراد ملاب

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/mayavi/mlab.py in()
25
26 # واردات مايافي
---> 27 من عرض استيراد mayavi.tools.camera ، لفة ، انعراج ، خطوة ، تحرك
28 من mayavi.tools.figure import figure، clf، gcf، savefig،
29 رسم ، sync_camera ، إغلاق ، لقطة شاشة

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/mayavi/tools/camera.py in()
23 # لا يمكننا استخدام gcf ، لأنه ينشئ استيرادًا دائريًا في إدارة الكاميرا
24 # إجراءات روتينية.
---> 25 من .engine_manager استيراد get_engine
26
27

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/mayavi/tools/engine_manager.py in()
10
11 # الواردات المحلية
---> 12 من mayavi.preferences.api import preference_manager
13 من سجل استيراد mayavi.core.registry
14 من محرك استيراد mayavi.core.engine

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/mayavi/preferences/api.py in()
2
3 # مثيل PreferenceManager العالمي
----> 4 من .preference_manager import preference_manager
5 من استيراد الروابط ، set_scene_preferences ، get_scene_preferences

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/mayavi/preferences/preference_manager.py in()
27 من traits.etsconfig.api استيراد ETSConfig
28 من traits.api استيراد HasTraits ، مثيل
---> 29 من traitsui.api import View ، Group ، Item
30 من استيراد apptools.preferences.api (ScopedPreferences ، IPreferences ،
31 تفضيلاتمساعدة)

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/traitsui/api.py in()
34
35 حاول:
---> 36 من .editors.api import ArrayEditor
37 باستثناء خطأ الاستيراد:
38 # ArrayEditor يعتمد على numpy ، لذلك تجاهل إذا كان numpy غير موجود.

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/traitsui/editors/__init__.py in()
21
22 جرب:
---> 23 من .api import ArrayEditor
24 باستثناء خطأ الاستيراد:
25 تمريرة

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/traitsui/editors/api.py in()
22 من .button_editor استيراد ButtonEditor
23 من .check_list_editor استيراد CheckListEditor
---> 24 من محرر كود الاستيراد
25 من محرر color_editor استيراد ColorEditor
26 من .compound_editor استيراد CompoundEditor

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/traitsui/editors/code_editor.py in()
34 # ---------------------------------------------------------------------------- 34 -------------------------------
35
---> 36 فئة ToolkitEditorFactory (EditorFactory):
37 "" مصنع المحرر لمحرري الكود.
38 ""

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/traitsui/editors/code_editor.py in ToolkitEditorFactory ()
46
47 # لون الخلفية لتمييز الخطوط
---> 48 mark_color = اللون (0xECE9D8)
49
50 # سمة كائن تحتوي على الخط المحدد حاليًا (اختياري)

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/traits/traits.pyc في __call __ (self ، args ، * metadata)
520
521 def __call__ (self، args، * metadata):
-> 522 إرجاع self.maker_function ( args ، * metadata)
523
فئة 524 TraitImportError (TraitFactory):

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/traits/traits.pyc in Color ( args ، * metadata)
1234 من traitsui.toolkit_traits استيراد ColorTrait
1235
-> 1236 إرجاع ColorTrait ( args، * metadata)
1237
1238 اللون = TraitFactory (اللون)

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/traitsui/toolkit_traits.pyc في ColorTrait ( args ، * السمات)
5
6 def ColorTrait ( args ، * السمات):
----> 7 مجموعة أدوات إرجاع (). color_trait ( args ، * سمات)
8
9 def RGBColorTrait ( args ، * السمات):

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/traitsui/toolkit.pyc في مجموعة الأدوات (* مجموعات الأدوات)
150 في حالة ETSConfig.toolkit:
151 # إذا تم بالفعل تعيين مجموعة أدوات لـ ETSConfig ، فاستخدمها:
-> 152 _toolkit = _import_toolkit (ETSConfig.toolkit)
153 _toolkit إرجاع
154 آخر:

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/traitsui/toolkit.pyc في _import_toolkit (الاسم)
81
82 def _import_toolkit (الاسم):
---> 83 إرجاع __import __ (الاسم ، الكرة الأرضية = الكرة الأرضية () ، المستوى = 1).
84
85

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/traitsui/qt4/__init__.py in()
16 # استيراد pyface.qt قبل القيام بأي شيء آخر حتى sipapi
يمكن ضبط 17 # بشكل صحيح إذا لزم الأمر
---> 18 استيراد pyface.qt
19
20 # ------------------------------------------------ ----------------------------

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/pyface/qt/__init__.py in()
38
39: elif qt_api == 'pyqt':
---> 40 Prepar_pyqt4 ()
41
42 elif qt_api! = 'pyside':

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/pyface/qt/__init__.py in Prepar_pyqt4 ()
15 # تعيين واجهات برمجة التطبيقات المتوافقة مع PySide.
16 رشفة استيراد
---> 17 sip.setapi ("QDate"، 2)
18 sip.setapi ("QDateTime"، 2)
19 sip.setapi ("QString"، 2)

ValueError: تم بالفعل تعيين "QDate" API على الإصدار 1

حتى الآن لم يتم حل المشكلة من from pyface.qt import QtGui, QtCore أو QT_API غير المضبوط.

(2) في وحدة تحكم بيثون عادية

from mayavi import mlab
mlab.test_plot3d()

يعمل!

(3) في وحدة تحكم ثعبان Pycharm IDE

from mayavi import mlab
mlab.test_plot3d()
mlab.show()

ضروري للمقتطف للعمل.

لذا في IPython ، يبدو أن IPython يقوم بتعيين الإصدار على 2. هل يمكنك تجربة هذا:

$ ipython

from mayavi import mlab
%gui qt
mlab.test_plot3d()

ربما سيؤدي ذلك إلى ضبط QT API على 2 قبل أن يتمكن IPython من تعيينها على 1. تقنيًا ووفقًا لمستندات IPython هنا: http://ipython.readthedocs.io/en/stable/interactive/reference.html#pyqt -and- pyside لا ينبغي أن يحدث هذا ولكن دعونا نرى.

شكرًا لك prabhuramachandran التي فعلت الحيلة ... في الوقت الحالي.

سيكون من الرائع لو لم تكن حالة العلاقة بين الخلفيات والارتباطات والوحدات النمطية شديدة الانسيابية. لذلك أحاول حاليًا تبني ممارسة العمل مع المحيطين الافتراضيين للمشاريع التي أنوي (أو آمل) تجميدها في حالة العمل. ومع ذلك ، في تجربتي لأي تحديث أو تثبيت معين ، على سبيل المثال ، ipython أو matplotlib ، لا يوجد ضمان أن تظل حزمة التصور كما هي. ربما تكون هذه مجرد سذاجتي ، لكن يجب أن أعترف أنني أقضي وقتًا طويلاً في استكشاف الأخطاء وإصلاحها وإصلاح الأشياء المعطلة لذلك فأنا دائمًا أشعر بالفضول لمعرفة كيف يميل المطورون إلى الحفاظ على "بيئتهم" في نظام العمل.

MustafaHosny اللهم امين يارب

لذلك أشعر بالفضول دائمًا لمعرفة كيف يميل المطورون إلى الحفاظ على "بيئتهم" في نظام العمل.

تضمين التغريدة

kambysese - حسنًا ، لم يتغير رمزنا كثيرًا حقًا. تكمن المشكلة في وجود pyside و pyqt و pyqt4 و pyqt5 و qtdate (وغير ذلك) و wxPython (2 ، 3 ، الآن 4!). أعتقد أننا يجب أن نوثق هذا بعناية في مكان ما. هل لديك اقتراح؟ هل وضعها هنا: http://docs.enthought.com/mayavi/mayavi/mlab.html يكون على ما يرام؟

prabhuramachandran لماذا يحدث هذا الآن على OSX؟ بغض النظر عن السحر %gui qt

screen shot 2018-04-25 at 11 05 30 am

لا توجد فكرة ، الأمور تسير على ما يرام بالنسبة لي. ما هو إصدار PyQt5؟ PyQt5 ليس مستقرًا كما أريد ، لقد واجهت مشاكل غريبة كثيرًا. يعمل PyQt5 (5.10.1) بالنسبة لي على OSX ولكنه يتعطل على Windows حيث كنت بحاجة إلى الرجوع إلى إصدار 5.9.2.

أنا أستخدم PyQt 5.9.2

من المثير للاهتمام ، أنه كان يعمل من أجلي ولكن شريط الأدوات سوف يطفو في كل مكان ، بالترقية إلى PyQt 5.10.1 تم إصلاحه لي. ومع ذلك ، سأحصل على تصور عملي ، كان شريط الأدوات فقط هو الذي تم العبث به. حاول التحديث إلى PyQt5.10.1.

conda غير سعيد بهذا الخيار بسبب التبعيات. يمكنني المحاولة لكنني متأكد من أن شيئًا آخر سيتعطل.

كنت أستخدم pip install PyQt5 .

nvmd 5.9.2 هو الإصدار الأعلى المتاح على قناة Conda الافتراضية.

يمكنني التأكيد باستخدام 5.9.4 لن تظهر النافذة أي شيء على OSX ، مع:

pip install pyqt5 --upgrade --no-deps

يقوم بالترقية إلى الإصدار 5.10.1 وهو يعمل.

@ larsoner - شكرا! ياله من ألم. لا تستخدم 5.10.1 على windows خاصة على appveyor.

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