Mayavi: рдЯреАрд╡реАрдЯреАрдХреЗ рджреГрд╢реНрдп рд╡рд┐рдВрдбреЛрдЬрд╝ рд░рд┐рдХреНрдд/рдЕрдиреБрддреНрддрд░рджрд╛рдпреА

рдХреЛ рдирд┐рд░реНрдорд┐рдд 27 рдЬреБрд▓ре░ 2017  ┬╖  15рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: enthought/mayavi

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

рд░рд┐рдХреНрдд / рдЕрдиреБрддреНрддрд░рджрд╛рдпреА рдЖрдХреГрддрд┐ рд╡рд┐рдВрдбреЛ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ
image

рдореЗрд░реЗ рд╕рд┐рд╕реНрдЯрдо рдХреА рдЬрд╛рдирдХрд╛рд░реА рд╣реИ:

рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо: Linux-4.4.0-87-рдЬреЗрдиреЗрд░рд┐рдХ-x86_64-with-debian-stretch-sid
рдкрд╛рдпрдерди: 2.7.13 |Continuum Analytics, Inc.| (рдбрд┐рдлрд╝реЙрд▓реНрдЯ, 20 рджрд┐рд╕рдВрдмрд░ 2016, 23:09:15) [рдЬреАрд╕реАрд╕реА 4.4.7 20120313 (рд░реЗрдб рд╣реИрдЯ 4.4.7-1)]
рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп: /home/ktavabi/miniconda3/envs/py2.7/bin/python
рд╕реАрдкреАрдпреВ: x86_64: 24 рдХреЛрд░
рдореЗрдореЛрд░реА: 94.4 рдЬреАрдмреА
рдПрдордПрдирдИ: 0.15.рджреЗрд╡0
рд╕реБрдиреНрди: 1.13.1 {рд▓реИрдкреИрдХ=mkl_intel_lp64, blas=mkl_intel_lp64}
scipy: 0.19.1
рдореИрдЯрдкреНрд▓реЛрдЯрд▓рд┐рдм: 2.0.2
рд╕реНрдХреЗрд▓реЗрд░: 0.18.2
рдирд┐рдмрд╛рдмреЗрд▓: 2.1.0
рдорд╛рдпрд╛рд╡реА: 4.5.0
рдкрд╛рдЗрдХреБрдбрд╛: 2017.1
рд╕реНрдХреВрдбрд╛: 0.5.1
рдкрд╛рдВрдбрд╛: 0.20.3

рд╕реАрд╕реА @ рдПрд░рд┐рдХ89рдЬреАрдПрдХреНрд╕рдПрд▓

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВ 5.9.4 рдХреЗ рд╕рд╛рде рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рд╡рд┐рдВрдбреЛ OSX рдкрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рджрд┐рдЦрд╛рддреА рд╣реИ:

pip install pyqt5 --upgrade --no-deps

рдпрд╣ 5.10.1 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рддрд╛ рд╣реИ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рд╕рднреА 15 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдХреНрдпрд╛ рдЖрдкрдиреЗ %gui qt рд╕реЗрдЯ рдХрд┐рдпрд╛ рдерд╛? рдпрджрд┐ рдпрд╣ рд╡реИрдирд┐рд▓рд╛ рдкрд╛рдпрдерди рд╣реИ рдФрд░ IPython рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЕрдВрдд рдореЗрдВ рдПрдХ mlab.show() рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рдЧреБрдИ рдЯреВрд▓рдХрд┐рдЯ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдпрд╣рд╛рдВ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдкреНрд░рд▓реЗрдЦрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: http://docs.enthink.com/mayavi/mayavi/mlab.html

рдореИрдВрдиреЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ ETS_TOOLKIT=qt4 рдФрд░ QT_API=pyqt . рд╕реЗрдЯ рдХрд┐рдП рд╣реИрдВ
рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рднрд┐рдиреНрди рд╡реНрдпрд╡рд╣рд╛рд░ рдорд┐рд▓ рд░рд╣реЗ рд╣реИрдВ:

(1) ipython рдХреЗ рд╕рд╛рде

ipython --gui=qt
from mayavi import mlab

рд░рд┐рдЯрд░реНрди

ValueError рдЯреНрд░реЗрд╕рдмреИрдХ (рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рдХреЙрд▓ рдЕрдВрддрд┐рдо)
рдореЗрдВ()
----> 1 рдорд╛рдпрд╛рд╡реА рд╕реЗ рдЖрдпрд╛рдд рдПрдордПрд▓рдмреА

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/mayavi/mlab.py in()
25
26 # рдорд╛рдпрд╛рд╡реА рдЗрдореНрдкреЛрд░реНрдЯ
---> 27 рдорд╛рдпрд╛рд╡реА.рдЯреВрд▓реНрд╕.рдХреИрдорд░рд╛ рдЖрдпрд╛рдд рджреГрд╢реНрдп рд╕реЗ, рд░реЛрд▓, рдпреЙ, рдкрд┐рдЪ, рдореВрд╡
28 рд╕реЗ рдорд╛рдпрд╛рд╡реА.рдЯреВрд▓реНрд╕.рдлрд┐рдЧрд░ рдЗрдВрдкреЛрд░реНрдЯ рдлрд┐рдЧрд░, рд╕реАрдПрд▓рдПрдл, рдЬреАрд╕реАрдПрдл, рд╕реЗрд╡рдлрд┐рдЧ,
29 рдбреНрд░рд╛, рд╕рд┐рдВрдХ_рдХреИрдорд░рд╛, рдмрдВрдж рдХрд░реЗрдВ, рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/mayavi/tools/camera.py рдореЗрдВ()
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 рдореЗрдВ()
10
11 # рд╕реНрдерд╛рдиреАрдп рдЖрдпрд╛рдд
---> 12 mayavi.preferences.api рд╕реЗ рдЖрдпрд╛рдд рд╡рд░реАрдпрддрд╛_рдкреНрд░рдмрдВрдзрдХ
13 рдорд╛рдпрд╛рд╡реА.рдХреЛрд░.рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдЖрдпрд╛рдд рд░рдЬрд┐рд╕реНрдЯреНрд░реА рд╕реЗ
14 mayavi.core.engine рдЖрдпрд╛рдд рдЗрдВрдЬрди рд╕реЗ

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/mayavi/preferences/api.py рдореЗрдВ()
2
3 # рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд░реАрдпрддрд╛ рдкреНрд░рдмрдВрдзрдХ рдЙрджрд╛рд╣рд░рдг
----> 4 рд╕реЗ .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 рдореЗрдВ()
27 рд╕реЗ рд▓рдХреНрд╖рдг.etsconfig.api рдЖрдпрд╛рдд ETSConfig
28 рд╕реЗ рд▓рдХреНрд╖рдг.рдПрдкреАрдЖрдИ рдЖрдпрд╛рдд рд╣реИрд╕рдЯреНрд░реЗрдЯреНрд╕, рдЗрдВрд╕реНрдЯреЗрдВрд╕
---> 29 рд╕реЗ рд▓рдХреНрд╖рдгрд╕реБрдИ.рдПрдкреАрдЖрдИ рдЖрдпрд╛рдд рджреЗрдЦреЗрдВ, рд╕рдореВрд╣, рдЖрдЗрдЯрдо
30 apptools.preferences.api рдЖрдпрд╛рдд рд╕реЗ (ScopedPreferences, IPreferences,
31 рд╡рд░реАрдпрддрд╛рдПрдБ рд╣реЗрд▓реНрдкрд░)

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/traitsui/api.py рдореЗрдВ()
34
35 рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:
---> 36 рд╕реЗ .editors.api рдЖрдпрд╛рдд ArrayEditor
рдЖрдпрд╛рдд рддреНрд░реБрдЯрд┐ рдХреЛ рдЫреЛрдбрд╝рдХрд░ 37:
38 # ArrayEditor numpy рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдЧрд░ numpy рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ рддреЛ рдЙрд╕реЗ рдЗрдЧреНрдиреЛрд░ рдХрд░реЗрдВред

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/traitsui/editors/__init__.py рдореЗрдВ()
21
22 рдХреЛрд╢рд┐рд╢:
---> 23 рд╕реЗ .api рдЖрдпрд╛рдд ArrayEditor
24 рдЖрдпрд╛рдд рддреНрд░реБрдЯрд┐ рдХреЛ рдЫреЛрдбрд╝рдХрд░:
25 рдкрд╛рд╕

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/traitsui/editors/api.py рдореЗрдВ()
22 рд╕реЗ .button_editor рдЖрдпрд╛рдд ButtonEditor
23 рд╕реЗ .check_list_editor рдЖрдпрд╛рдд рдХрд░реЗрдВ CheckListEditor
---> 24 рд╕реЗ .code_editor рдЖрдпрд╛рдд CodeEditor
25 рд╕реЗ .color_editor рдЖрдпрд╛рдд рдХрд░реЗрдВ ColorEditor
26 рд╕реЗ .compound_editor рдЖрдпрд╛рдд CompoundEditor

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/traitsui/editors/code_editor.py рдореЗрдВ()
34 #------------------------------------------------ -----------------------------
35
---> 36 рд╡рд░реНрдЧ рдЯреВрд▓рдХрд┐рдЯ рд╕рдВрдкрд╛рджрдХ рдлреИрдХреНрдЯрд░реА (рд╕рдВрдкрд╛рджрдХ рдлреИрдХреНрдЯрд░реА):
37 """ рдХреЛрдб рд╕рдВрдкрд╛рджрдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдкрд╛рджрдХ рдХрд╛рд░рдЦрд╛рдирд╛ред
38 """

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/traitsui/editors/code_editor.py ToolkitEditorFactory рдореЗрдВ ()
46
47 # рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреГрд╖реНрдарднреВрдорд┐ рдХрд╛ рд░рдВрдЧ
---> 48 рдорд╛рд░реНрдХ_рдХрд▓рд░ = рд░рдВрдЧ (0xECE9D8)
49
50 # рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬрд┐рд╕рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЪрдпрдирд┐рдд рд▓рд╛рдЗрди рд╣реИ (рд╡реИрдХрд▓реНрдкрд┐рдХ)

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/traits/traits.pyc __call__(self, args, * рдореЗрдЯрд╛рдбреЗрдЯрд╛) рдореЗрдВ
520
521 def __call__ (рд╕реНрд╡рдпрдВ, args, * рдореЗрдЯрд╛рдбреЗрдЯрд╛):
--> 522 рд░рд┐рдЯрд░реНрди self.maker_function (рддрд░реНрдХ , * рдореЗрдЯрд╛рдбреЗрдЯрд╛)
523
524 рд╡рд░реНрдЧ TraitImportError (TraitFactory):

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/traits/traits.pyc рд░рдВрдЧ рдореЗрдВ ( args, * рдореЗрдЯрд╛рдбреЗрдЯрд╛)
1234 рд╕реЗ рдЯреНрд░реИрдЯреНрд╕реБрдИ.рдЯреВрд▓рдХрд┐рдЯ_рдЯреНрд░реЗрдЯреНрд╕ рдЗрдореНрдкреЛрд░реНрдЯ рдХрд▓рд░рдЯреНрд░реЗрдЯ
1235
-> 1236 рд░рд┐рдЯрд░реНрди рдХрд▓рд░рдЯреНрд░реЗрдЯ (рддрд░реНрдХ , * рдореЗрдЯрд╛рдбреЗрдЯрд╛)
1237
1238 рд░рдВрдЧ = рд╡рд┐рд╢реЗрд╖рддрд╛ рдлреИрдХреНрдЯрд░реА (рд░рдВрдЧ)

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/traitsui/toolkit_traits.pyc ColorTrait рдореЗрдВ ( args, * рд▓рдХреНрд╖рдг)
5
6 рдбреАрдИрдПрдлрд╝ рдХрд▓рд░рдЯреНрд░реЗрдЯ ( рдЖрд░реНрдЧ, * рд▓рдХреНрд╖рдг):
----> 7 рд░рд┐рдЯрд░реНрди рдЯреВрд▓рдХрд┐рдЯ ()ред Color_trait (рддрд░реНрдХ , * рд▓рдХреНрд╖рдг)
8
9 рдбреАрдИрдПрдлрд╝ RGBColorTrait (рддрд░реНрдХ , * рд▓рдХреНрд╖рдг):

рдЯреВрд▓рдХрд┐рдЯ рдореЗрдВ /home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/traitsui/toolkit.pyc(*toolkits)
150 рдЕрдЧрд░ ETSConfig.toolkit:
151 # рдпрджрд┐ ETSConfig рдХреЗ рд▓рд┐рдП рдЯреВрд▓рдХрд┐рдЯ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реЗрдЯ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
-> 152 _рдЯреВрд▓рдХрд┐рдЯ = _import_toolkit (ETSConfig.toolkit)
153 рд╡рд╛рдкрд╕реА _рдЯреВрд▓рдХрд┐рдЯ
154 рдЕрдиреНрдп:

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/traitsui/toolkit.pyc _import_toolkit(name) рдореЗрдВ
81
82 рдбреАрдИрдПрдлрд╝ _import_toolkit (рдирд╛рдо):
---> 83 рд░рд┐рдЯрд░реНрди __import__(рдирд╛рдо, рдЧреНрд▓реЛрдмрд▓реНрд╕ = рдЧреНрд▓реЛрдмрд▓реНрд╕ (), рд▓реЗрд╡рд▓ = 1)ред рдЯреВрд▓рдХрд┐рдЯ
84
85

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/traitsui/qt4/__init__.py рдореЗрдВ()
16 # рдХреБрдЫ рдФрд░ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ pyface.qt рдЖрдпрд╛рдд рдХрд░реЗрдВ рддрд╛рдХрд┐ рд╕рд┐рдкрд╛рдкреА
17 # рдЬрд░реВрд░рдд рдкрдбрд╝рдиреЗ рдкрд░ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
---> 18 рдЖрдпрд╛рдд pyface.qt
19
20 #------------------------------------------------ ----------------------------

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/pyface/qt/__init__.py рдореЗрдВ()
38
39 рдПрд▓рд┐рдл qt_api == 'pyqt':
---> 40 рддреИрдпрд╛рд░_рдкреАрдХреНрдпреВрдЯреА4 ()
41
42 рдПрд▓рд┐рдл qt_api != 'pyside':

/home/ktavabi/miniconda3/envs/py2.7/lib/python2.7/site-packages/pyface/qt/__init__.py рдореЗрдВ рддреИрдпрд╛рд░_pyqt4()
15 # рдкрд╛рдЗрд╕рд╛рдЗрдб рд╕рдВрдЧрдд рдПрдкреАрдЖрдИ рд╕реЗрдЯ рдХрд░реЗрдВред
16 рдЖрдпрд╛рдд рдШреВрдВрдЯ
---> 17 рдШреВрдВрдЯредрд╕реЗрдЯрд╛рдкреА ('рдХреНрдпреВрдбреЗрдЯ', 2)
18 рд╕рд┐рдк.рд╕реЗрдЯрд╛рдкреА ('рдХреНрдпреВрдбреЗрдЯрдЯрд╛рдЗрдо', 2)
19 рдШреВрдВрдЯредрд╕реЗрдЯрд╛рдкреА ('рдХреНрдпреВрд╕реНрдЯреНрд░рд┐рдВрдЧ', 2)

ValueError: API 'QDate' рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрд╕реНрдХрд░рдг 1 рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИ

рдЕрдм рддрдХ рди рддреЛ from pyface.qt import QtGui, QtCore рдпрд╛ QT_API рдХреЛ рдЕрдирд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реБрдЖ рд╣реИред

(2) рдПрдХ рдирд┐рдпрдорд┐рдд рдкрд╛рдпрдерди рдХрдВрд╕реЛрд▓ рдореЗрдВ

from mayavi import mlab
mlab.test_plot3d()

рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!

(3) рдПрдХ рдкрд┐рдЪрд░реНрдо рдЖрдИрдбреАрдИ рдкрд╛рдпрдерди рдХрдВрд╕реЛрд▓ рдореЗрдВ

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 рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рд▓реЗрдХрд┐рди рджреЗрдЦрддреЗ рд╣реИрдВред

рдзрдиреНрдпрд╡рд╛рдж @prabhuramaрдЪрдВрджреНрд░рди рдЬрд┐рд╕рдиреЗ рдЪрд╛рд▓ рдЪрд▓реА ... рдЕрднреА рдХреЗ рд▓рд┐рдПред

рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдмреИрдХрдПрдВрдб, рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдФрд░ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рдХреА рд╕реНрдерд┐рддрд┐ рдЗрддрдиреА рддрд░рд▓ рди рд╣реЛред рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЙрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдЪреБрдЕрд▓ рдПрдирд╡реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдЕрднреНрдпрд╛рд╕ рдХреЛ рдЕрдкрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдореИрдВ рдПрдХ рдХрд╛рдордХрд╛рдЬреА рд░рд╛рдЬреНрдп рдореЗрдВ рдлреНрд░реАрдЬ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд░рдЦрддрд╛ рд╣реВрдВ (рдпрд╛ рдЖрд╢рд╛ рдХрд░рддрд╛ рд╣реВрдВ)ред рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдЕрдкрдбреЗрдЯ рдпрд╛ рдЗрдВрд╕реНрдЯрд╛рд▓ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдЕрдиреБрднрд╡ рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, ipython рдпрд╛ matplotlib рдХреА рдХреЛрдИ рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рд╕реНрдЯреИрдХ рдмрд░рдХрд░рд╛рд░ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рд╕рд┐рд░реНрдл рдореЗрд░рд╛ рднреЛрд▓рд╛рдкрди рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдореИрдВ рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг рдФрд░ рдЯреВрдЯреА рд╣реБрдИ рдЪреАрдЬреЛрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдлреА рд╕рдордп рд╡реНрдпрддреАрдд рдХрд░рддрд╛ рд╣реВрдВ рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╣рдореЗрд╢рд╛ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реВрдВ рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЕрдкрдиреЗ 'рдкрд░реНрдпрд╛рд╡рд░рдг' рдХреЛ рдХрд╛рд░реНрдп рдХреНрд░рдо рдореЗрдВ рдХреИрд╕реЗ рд░рдЦрддреЗ рд╣реИрдВред

FYI рдХрд░реЗрдВ cc @kingjr @choldgraf @Eric89GXL

рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рдЙрддреНрд╕реБрдХрддрд╛ рд░рд╣рддреА рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЕрдкрдиреЗ 'рдкрд░реНрдпрд╛рд╡рд░рдг' рдХреЛ рдХрд╛рд░реНрдп рдХреНрд░рдо рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВред

@choldgraf - рдПрд▓рдУрдПрд▓!

@kambysese - рдареАрдХ рд╣реИ, рд╣рдорд╛рд░рд╛ рдЕрдкрдирд╛ рдХреЛрдб рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдЬреНрдпрд╛рджрд╛ рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИред рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ pyside, pyqt, pyqt4, pyqt5, qtdate (рдФрд░ whatnot), wxPython (2, 3, рдЕрдм 4!) рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЗрд╕реЗ рдХрд╣реАрдВ рди рдХрд╣реАрдВ рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдкрдХрд╛ рдХреЛрдИ рд╕реБрдЭрд╛рд╡ рд╣реИ? рдЗрд╕реЗ рдпрд╣рд╛рдВ рд░рдЦреЗрдВрдЧреЗ: http://docs.enthink.com/mayavi/mayavi/mlab.html рдареАрдХ рд░рд╣реЗрдЧрд╛?

@рдкреНрд░рднрд╛рд░рд╛рдордЪрдВрджреНрд░рди рдЕрдм OSX рдкрд░ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ? %gui qt рдЬрд╛рджреВ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛

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

рдкрддрд╛ рдирд╣реАрдВ, рдЪреАрдЬреЗрдВ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИрдВред рдкреАрдИрдХреНрдпреВрдЯреА 5 рдХрд╛ рдХреМрди рд╕рд╛ рд╕рдВрд╕реНрдХрд░рдг? рдкреАрдИрдХреНрдпреВрдЯреА 5 рдЙрддрдирд╛ рд╕реНрдерд┐рд░ рдирд╣реАрдВ рд╣реИ рдЬрд┐рддрдирд╛ рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдореБрдЭреЗ рдЕрдХреНрд╕рд░ рдЕрдЬреАрдм рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВред PyQt5 (5.10.1) OSX рдкрд░ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдБ рдореБрдЭреЗ 5.9.2 рдкрд░ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдореИрдВ рдкреАрдИрдХреНрдпреВрдЯреА 5.9.2 . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ

рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рдерд╛ рд▓реЗрдХрд┐рди рдЯреВрд▓рдмрд╛рд░ рд╕рднреА рдЬрдЧрд╣ рддреИрд░рддрд╛ рдерд╛, рдкреАрдИрдХреНрдпреВрдЯреА 5.10.1 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рд╕реЗ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рддрдп рд╣реЛ рдЧрдпрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореБрдЭреЗ рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рджреГрд╢реНрдп рдорд┐рд▓реЗрдЧрд╛, рдпрд╣ рдХреЗрд╡рд▓ рдЯреВрд▓рдмрд╛рд░ рдерд╛ рдЬрд┐рд╕реЗ рдЧрдбрд╝рдмрдбрд╝ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред PyQt5.10.1 рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

conda рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдХрд╛рд░рдг рдЙрд╕ рд╡рд┐рдХрд▓реНрдк рд╕реЗ рдЦреБрд╢ рдирд╣реАрдВ рд╣реИред рдореИрдВ рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдХреБрдЫ рдФрд░ рдЯреВрдЯ рдЬрд╛рдПрдЧрд╛ред

рдореИрдВ pip install PyQt5 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

nvmd 5.9.2 рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЛрдВрдбрд╛ рдЪреИрдирд▓ рдкрд░ рдЙрдкрд▓рдмреНрдз рдЙрдЪреНрдЪрддрдо рд╕рдВрд╕реНрдХрд░рдг рд╣реИред

рдореИрдВ 5.9.4 рдХреЗ рд╕рд╛рде рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рд╡рд┐рдВрдбреЛ OSX рдкрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рджрд┐рдЦрд╛рддреА рд╣реИ:

pip install pyqt5 --upgrade --no-deps

рдпрд╣ 5.10.1 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рддрд╛ рд╣реИ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

@ рд▓рд╛рд░реНрд╕рдирд░ - рдзрдиреНрдпрд╡рд╛рдж! рдХреНрдпрд╛ рджрд░реНрдж рд╣реИред рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ 5.10.1 рдХрд╛ рдкреНрд░рдпреЛрдЧ рди рдХрд░реЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдкрд╡реЗрдпрд░ рдкрд░ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

Mallcock1 picture Mallcock1  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

scottstanie picture scottstanie  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Kekushke picture Kekushke  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

rambalachandran picture rambalachandran  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

GaelVaroquaux picture GaelVaroquaux  ┬╖  13рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ