μ λ 3D λΉμ£ΌμΌλ¦¬μ μ΄μ μ λ₯μνμ§ μκ³ μ΄κ²μ΄ λ§μΌλΉ λ¬Έμ μΈμ§ νμ€νμ§ μμ§λ§(μλͺ»λ λ무λ₯Ό μ§λ κ²½μ° μ¬κ³Όν©λλ€) λ€μκ³Ό κ°μ μκΈ°μΉ μμ λμμ κ΄μ°°νμ΅λλ€.
conda, anaconda 3, conda λμ pip install mayavi vtk pyqt5
μ¬μ©νμ¬ mayaviλ₯Ό μ€μΉνμ΅λλ€(#652μ μ μ¬ν λ¬Έμ κ° λ°μν ν).
Debian 4.9.88-1+deb9u1 (2018-05-07) x86_64 GNU/Linux
Name: mayavi
Version: 4.6.0
Name: vtk
Version: 8.1.0
Location: /home/xxxyyy/anaconda3/envs/ELA/lib/python3.6/site-packages
# example from https://stackoverflow.com/a/10740780
from mayavi import mlab
import numpy as np
# Generate some random hypocenters
x, y, z, mag = np.random.random((4, 500))
# Make a curved well bore...
wellx, welly, wellz = 3 * [np.linspace(0, 1.5, 10)]
wellz = wellz**2
# Plot the hypocenters, colored and scaled by magnitude
mlab.points3d(x, y, z, mag)
# Plot the wellbore
mlab.plot3d(wellx, welly, wellz, tube_radius=0.1)
mlab.show()
μ μ 곡μ νμ νμ΄νλ₯Ό λλ¬μΈκ³ κ·Έ μΌλΆλ₯Ό μλμ μ¨κ²¨μΌ ν©λλ€.
λ€λ₯Έ OS-Windows(mayavi λ²μ TBC, μλ§λ 4.5)μμ μ΄μ λ²μ μ mayaviμμ μμλλ λμμ μ»μ΅λλ€.
'μ§κ΅¬λ³Έ' μ£Όμμ λ°°μΉλ plot3d ν¬μΈνΈμ λμΌν λ¬Έμ κ° μλ κ² κ°μ΅λλ€.
sphere = mlab.points3d(0, 0, 0, scale_mode='none',
scale_factor=2,
# color=(0.67, 0.77, 0.93),
color=ocean_blue,
resolution=50,
opacity=.85,
name='Earth')
#
# These parameters, as well as the color, where tweaked through the GUI,
# with the record mode to produce lines of code usable in a script.
sphere.actor.property.specular = 0.45
sphere.actor.property.specular_power = 5
# Backface culling is necessary for more a beautiful transparent
# rendering.
sphere.actor.property.backface_culling = True
pyqt/pyside λ°±μλμ κ²½μ° +1, [email protected] λ° [email protected]μ μ¬μ©νμ¬ λ°λΉμ μ€νΈλ μΉμμ ν μ€νΈ
μ΄κ²μ VTKμ μΌλ°μ μΈ λ¬Έμ μ΄λ©° #574 λ° #491μμ μ΄μ μ λνλ¬μ΅λλ€. λλ μ΄κ²μ νμνκ±°λ ν΄κ²°μ± μ μ°Ύμ μκ°μ΄ μμμ΅λλ€.
@jmp75 μ λ κ°μ λ¬Έμ κ° μμμ΅λλ€. μ΄λ€ λ²μ μ mayaviκ° μλνλμ§ νμΈν΄ μ£Όμκ² μ΅λκΉ?
@lhvalentini λλ μ΄κ²μ Mayavi 4.5.0 λ° vtk 6.3.0 ν¨ν€μ§μ ν¨κ» Windows 10μμ Anaconda 2(python 2.7.15)λ₯Ό μ¬μ©νμ¬ μλνκ³ μμ΅λλ€.
μ¬λ¬λΆ, μ΄κ²μ΄ λΆν¬λͺ λμ λ¬Έμ λΌλ©΄ κ·Έκ²μ λ€λ₯Έ λ¬Έμ μ λλ€.
OPs μ½λλ₯Ό μλνλλ° μ λλ‘ μλν©λλ€. μ΄κ²μ΄ OS κ΄λ ¨ λ¬Έμ μΈ κ²½μ° VTK 8.1.1 λ° λ§μ€ν°μ Mayaviκ° μλ Mac OS μ»΄ν¨ν°μμ νμ€ν 보기μ λλΌμ΄λ²μ λ¬Έμ κ° μμ μ μμ΅λλ€. μ΄ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ Mayaviμμ λ³κ²½λ μ¬νμ΄ μλμ§ μμ¬λ©λλ€.
@prabhuramachandran (a) κ·Όλ³Έ μμΈμ λΆλ¦¬νκΈ° μν΄ μΆκ° μ§λ¨μ΄ κ°λ₯νμ§ νμΈνκ² μ΅λλ€. μ€μ λ‘ mayaviλ λ¬Έμ κ° ν΄κ²°λμ΄μΌ νλ μμΉκ° μλ κ°λ₯μ±μ΄ λμ§λ§ λμμ΄ λλ νλͺ©μ κ°λ¦¬ν¬ μ μλ κ²½μ° μ΄ μ€λ λμμ λ³΄κ³ ν κ²μ λλ€.
RHEL 7, PyQt5 λ° Mayavi 4.6.2μμ λ¬Έμ λ₯Ό μ¬νν μ μμ΅λλ€(μμ μ»¬λ¬ λ³Ό μμ μ¬μ©). PyQt5λ₯Ό μ κ±°νκ³ wxPythonμ μ€μΉνμ¬ μ¬λ°λ₯΄κ² μλνλλ‘ λ§λ€ μ μμμ΅λλ€. λΆννλ PyQt5κ° νμν©λλ€. μμ μ€μΈ λ μ»΄ν¨ν° μ€ νλμμ VirtualGL(μ¬μ ν RHEL 7, PyQt5 λ° Mayavi 4.6.2 μ¬μ©)μμ μ€νν μ μμΌλ©° λ¬Έμ κ° μ¬λΌμ§λλ€. κ·Έλ¬λ λ€λ₯Έ μμ€ν (νλ‘λμ μμ€ν )μμ VirtualGLλ‘ μΈν΄ Mayaviκ° μΆ©λν©λλ€.
PyQt5λ₯Ό μ¬μ©ν λ μ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ λ°©λ²μ λν μ μ μ¬νμ΄ μμ΅λκΉ?
PyQt5μμλ λ¬Έμ λ₯Ό μ¬ννμ§λ§ wxPythonμμλ μ¬ννμ§ μμλ€λ μ¬μ€μ΄ λ¨μλ₯Ό μ 곡ν©λκΉ?
Linux Mint 18, 64λΉνΈ(Anaconda, Python 3.6, Qt 5.6.2, pyqt 5.6.0, VTK 8.1.1, Mayavi 4.6.2, conda-forgeμμ μ€μΉ)μ λΉμ·ν λ¬Έμ κ° μμ΅λλ€.
λ°λλΌ mlab.test_points3d()
νλ©΄ κ°μ²΄ μμκ° μ¬λ°λ₯΄μ§ μμ΅λλ€.
μμ μΈκΈν scene.renderer.use_depth_peeling
λ° f.scene.renderer.maximum_number_of_peels
μ€μ μΌλ‘ μ€νμ μλνμ§λ§ μ±κ³΅νμ§ λͺ»νμ΅λλ€.
μ΄λ€ μμ΄λμ΄κ° μ΄μ κ° λ μ μμ΅λκΉ?
μ λ°μ΄νΈ. μ΄ λ¬Έμ λ Linuxμ Qt5 λ¬Έμ μ²λΌ 보μ λλ€. λ΄ μ°λΆν¬ μμ€ν μμλ μ΄κ²μ λ³Ό μ μμ§λ§ OS Xμμλ λ³Ό μ μμ΅λλ€. Windowsλ νμ€νμ§ μμ΅λλ€. Qt4 λ°±μλμμλ 보μ΄μ§ μμ΅λλ€. κ·Έλμ μ°λ¦¬κ° Qt5μ QVTKRenderWindowInteractorλ₯Ό μ¬μ©ν λ μ΄λ»κ²λ λ λλ§μ΄ μλ§μΈ κ²μ²λΌ 보μ λλ€. λλ μ΄ λ¬Έμ λ₯Ό VTK μ¬λλ€μκ²λ μ μ€νΈλ¦ΌμΌλ‘ λ³΄κ³ νμ΅λλ€. λ¬Έμ κ° λ¬΄μμΈμ§ μ λͺ¨λ₯΄κ² μ΅λλ€.
λμΌν λ¬Έμ κ° μμ΅λλ€. Qt4λ‘ λ€μ μ΄λνκ³ λͺ¨λ κ²μ΄ μ μλν©λλ€.
Qt4κ° μλ Linuxμμ μ΄ λ¬Έμ κ° μμ΅λλ€(ipythonμ %gui qt4λ‘ νμ±νλ¨). Intel Graphics(μλ €μ§ λ¬Έμ μμ μ΄λ―Έ μΈκΈν κ²κ³Ό κ΄λ ¨λ κ²)κ° μκΈ° λλ¬ΈμΌ μ μμ΅λλ€.
Qt4λ μ€μΉν΄μΌ νμ΅λλ€. μ΄λ»κ² λ κ·Έ μ μ μ΅μ μ "qt4"λ₯Ό λ£μΌλ©΄ μ€λ₯ λ©μμ§κ° μμ±λμ§ μκ³ λμ Qt5κ° μ¬μ©λμμ΅λλ€.
μ’μ, λλ qt4κ° λ΄ λμ μ€μΉλμ§ μμλ€λ κ²μ κΉ¨λ«μ§ λͺ»νμ΅λλ€ (μ€μ λ‘, @ronceray , κ·Έκ²μ μ€λ₯λ₯Ό μΌμΌν€μ§ μμ΅λλ€) ...
PyQt 4.12.3μ΄ μ€νλμ§ μμμ§λ§ λ²μ 4.12.1μμ μλνλλ‘ ν μ μμμ΅λλ€.
PyQt5λ³΄λ€ ν¨μ¬ λ리μ§λ§ μ΄ μ κ²½ λ¬Έμ κ° μμ΅λλ€... λ€λ₯Έ κ·Έλν½ μΉ΄λλ₯Ό μ€μ νμ§ μμλ λ©λλ€!
Fedora 27 -> Fedora 29μμ μ κ·Έλ μ΄λ νκ³ μ΅μ NVIDIA κ·Έλν½ λλΌμ΄λ²λ₯Ό μ€μΉνμ΅λλ€ . κ·Έ ν, Mayaviλ pyqt5λ₯Ό μ¬μ©νμ¬ μμλλ‘ μνν©λλ€.
μ§λ λͺ μ£Ό λμ Python3μ μ¬μ©νμ¬ λμΌν λ¬Έμ (μλͺ»λ κΉμ΄ μμ λ λλ§)λ‘ μ΄λ €μμ κ²ͺκ³ μμΌλ©° μ¬κΈ°μμλ λ΄ κ²½νμ 곡μ ν κ²μ΄λΌκ³ μκ°νμ΅λλ€(2019-04-15 νμ¬).
μ°λ¦¬κ° κ°μ νμ΄μ§μ μκΈ° λλ¬Έμ λ΄κ° λ³΄κ³ μλ λ²μ μ λ€μκ³Ό κ°μ΅λλ€.
Mayavi/VTK/traitsλ 'wx' ν΄ν· λλ 'qt4' ν΄ν·μ μ¬μ©ν μ μμ΅λλ€. 'qt4' ν΄ν·μ μ¬μ©νλ©΄ QT APIλ₯Ό μ§μ νλ μΆκ° μ΅μ μ΄ μμ΅λλ€. μ ν μ¬νμ 'pyqt', 'pyqt5', 'pyside' λ° 'pyside2'μ λλ€. μ΄λ νκ²½ λ³μ ETS_TOOLKIT(wx λλ qt4λ‘ μ€μ ) λ° QT_API(pyqt, pyqt5, pyside λλ pyside2λ‘ μ€μ , ETS_TOOLKITκ° qt4λ‘ μ€μ λ κ²½μ°μλ§ μ μ© κ°λ₯)λ‘ μ§μ λ©λλ€.
Mint 18.3(κ·Έλ¦¬κ³ μλ§λ λͺ¨λ Ubuntu 16.04 λ³νμ κ²½μ°)μμ 곡μ Python3μ 3.5.2μ λλ€. μΌλΆ λͺ¨λμ apt/dpkgμμ μ¬μ©ν μ μμ§λ§ μΌλΆλ pipλ₯Ό μ¬μ©νμ¬ μ€μΉν΄μΌ ν©λλ€. Python3μ©μΌλ‘ wxPythonμ μ€μΉν μ μμ΅λλ€. Qtλ₯Ό μ¬μ©νλ©΄ κ²°κ³Όκ° λ¬λΌμ§λλ€.
Mint 19.1(λ° μλ§λ λͺ¨λ Ubuntu 18.04 λ³ν)μ κ²½μ° κ²°κ³Όκ° λΉμ·ν©λλ€. Python3 λ²μ μ 3.6.7μ λλ€. μ¬κΈ°μμ pip3μΌλ‘ wxPython(4.0.1)μ μ€μΉν μ μλ€λ μ μ μ μΈνκ³ λͺ¨λ λͺ¨λμ μ΄μ κ³Ό λμΌν©λλ€. μ΄ κ²½μ° ETS_TOOLKIT=wxλ₯Ό μ€μ νλ©΄ μ¬λ°λ₯Έ κΉμ΄ μμκ° μ 곡λ©λλ€. qt4 ν΄ν·μ κ²½μ° κ²°κ³Όλ Mint 18.3 κ²°κ³Όμ λμΌνμ΅λλ€(μ¦, pyqt λ° pysideλ μ¬λ°λ₯΄κ² λ λλ§λμμ§λ§ pyqt5 λ° pyside2λ κ·Έλ μ§ μμ).
μμ€μμ PySide2λ₯Ό μ»΄νμΌνλ €κ³ μλνκ³ μ»΄νμΌν μ μμμ΅λλ€. κ·Έλ¬λ λ λλ§μ μ¬μ ν ββμλͺ»λμμ΅λλ€.
λν pyenvλ₯Ό μ¬μ©νμ¬ λ€μν λ²μ μ Python3(νΉν 3.5.2 λ° 3.7.3)μ ν μ€νΈν΄ 보μμ΅λλ€. λ κ²½μ° λͺ¨λ, 곡μ PySide μ½λκ° 3.4 μ΄μμ Python λ²μ μ μ§μνμ§ μλλ€λ μ μ μ μΈνκ³ λ pip3μ ν΅ν΄ νμν λͺ¨λμ μ€μΉν μ μμ΅λλ€. PyQt5μ λ§μ°¬κ°μ§λ‘ PySide2λ₯Ό μ¬μ©ν μ μμ΅λλ€. λ λ€ μ λλ‘ μλνμ§ μμ΅λλ€. wxPythonμ μ»΄νμΌν μ μμ΅λλ€.
μ΄μ―€ λλ©΄ VTK λ¬Έμ κ° μλλΌ QT λ¬Έμ κ° μλκΉ(μ§κΈμ wxPythonμ ν¬κΈ°νλ€). νμ§λ§ μ΄μνκ²λ λ΄ μ λ¬΄μ© λ ΈνΈλΆ(Mint 18.3 ν¬ν¨)μμ pyenvλ₯Ό μ¬μ©νμ¬ Python 3.7.3μ μ€ννκ³ μ΄ κ²½μ° κΉμ΄ μμ κ° PyQt5 λλ PySide2λ₯Ό μ¬μ©νμ¬ μ¬λ°λ₯΄κ² λ λλ§
λ§μ§λ§μΌλ‘ VirtualBox(xfceκ° ν¬ν¨λ Mint 19.1)λ‘ λͺ κ°μ§ ν μ€νΈλ₯Ό μ€νν΄ λ³΄μμ΅λλ€. λλ μ¬μ ν λ€λ₯Έ μ‘°ν©μ μλνκ³ μμ§λ§ μ§κΈκΉμ§ κ²°κ³Όλ λμΌν©λλ€. (glxinfoλ OpenGL/GLX λλΌμ΄λ²λ₯Ό SGIλ‘ λ³΄κ³ ν©λλ€).
VTK MLμ μ΄ μ€λ λ λ λμΌν λ¬Έμ λ₯Ό μΈκΈνλ κ² κ°μ΅λλ€. λΆννλ, κ·Έκ²μ λ΅λ³λμ§ μμ μ±λ‘ λ¨κ²¨μ‘μ΅λλ€ ...
μ§κ°μΌλ‘ λ³΄κ³ ν κ°μΉκ° μλ λ°λΉμ λ©ν±μμ 무μΈκ°λ₯Ό μλνμ΅λλ€. μ΄κ²μ Debian wiki μ μ€λͺ λ λλ‘ NVIDIA Optimus λ ΈνΈλΆ
짧μ μ΄μΌκΈ°: λ€λ₯Έ λͺ¨λ κ²μ λ΄κ° κ²μν μλ ν μ€νΈ μ€ν¬λ¦½νΈμ λμΌνμ§λ§ Intel μΉ΄λμμλ μλͺ» λ λλ§λμ§λ§ NVIDIA νλμ¨μ΄μμλ μ¬λ°λ₯΄κ² λ λλ§λ©λλ€.
νκ²½(κ΄λ ¨ ν¨ν€μ§):
envisage 4.7.2 pypi_0 pypi
mayavi 4.6.2 pypi_0 pypi
pyface 6.0.0 pypi_0 pypi
pygments 2.3.1 pypi_0 pypi
pyqt5 5.12.2 pypi_0 pypi
pyqt5-sip 4.19.17 pypi_0 pypi
python 3.6.8 h0371630_0
traits 5.1.1 pypi_0 pypi
traitsui 6.0.0 pypi_0 pypi
vtk 8.1.2 pypi_0 pypi
optirun
λ₯Ό μ¬μ©νλ λ°©λ² μ λ°λΉμ μν€ λ₯Ό μ°Έμ‘°νμΈμ. optirun python ~/src/tmp/qtbug.py
μ¬λ°λ₯΄κ² μλνμ΅λλ€. μν μ±μ μ¬μ©νμ¬ optirun
μλ μ°¨μ΄λ₯Ό μ€λͺ
νλ €λ©΄ λ€μμ μννμμμ€.
glxgears -info
λ°ν
GL_RENDERER = Mesa DRI Intel(R) HD Graphics 630 (Kaby Lake GT2)
GL_VERSION = 3.0 Mesa 18.3.4
GL_VENDOR = Intel Open Source Technology Center
λ°λ©΄ optirun glxgears -info
GL_RENDERER = Quadro M1200/PCIe/SSE2
GL_VERSION = 4.6.0 NVIDIA 418.56
GL_VENDOR = NVIDIA Corporation
μ¬κΈ° Dell Precision 5520μ Arch Linuxμμ λ λ€λ₯Έ νμΈ μ¬νμ μΆκ°νκΈ° μν΄ Intel μΉ©μμλ λ¬Έμ κ° μ€νλκ³ μμ§λ§ optirun
λ₯Ό ν΅ν nvidia μΉ΄λμμλ λ¬Έμ κ° λ°μνμ§ μμ΅λλ€. μ΄κ²μ λͺ¨λ Archμ 곡μ μ μ₯μλ₯Ό ν΅ν΄ μ€μΉλ Python 3.7, Qt5 λ° mayaviμ ν¨κ»μ
λλ€.
λμΌν λ¬Έμ λ‘, PyQt5 λ°±μλλ‘ Mayaviλ₯Ό μ€ννλ©΄ Debian Stretchμμ Mesa/SGI λλΌμ΄λ²λ₯Ό μ¬μ©νμ¬ μλͺ»λ λ λλ§ μμκ° λ°μνμ§λ§ ETS_TOOLKIT=wx
νκ²½ λ³μ μΈνΈμ ν¨κ» μλν©λλ€.
PyQt λμ wxPythonμ μ¬μ©νμ¬ μ΄ λ¬Έμ λ₯Ό ν΄κ²°νμ΅λλ€.
μ΄ μ€λ λλ λ¬Έμ λ₯Ό ν΄κ²°νλ λ° λ§€μ° μ μ©νμ΅λλ€. μ견 μ£Όμ μ κ°μ¬ν©λλ€.
κ°μ λ¬Έμ λ‘ wxμμλ μλνμ§ μμΌλ―λ‘ python-pyqt4λ₯Ό μ€μΉνκ³ ETS_TOOLKIT=qt4
λ° QT_API=pyqt
λ₯Ό μ€μ νλ©΄ ν΄κ²°λμμ΅λλ€.
μμμ μΈκΈν κ΅¬μ± μ€ νλμ λν λ λ€λ₯Έ νμΈμ μΆκ°νκ³ μΆμ΅λλ€. μ λ Ubuntu 18.04λ₯Ό OSλ‘ μ¬μ©νλ Linux μ»΄ν¨ν°μμ μμ
νκ³ μμ΅λλ€. λ΄ μμ€ν
μλ Intel κ·Έλν½ μΉ΄λκ° μμ΅λλ€. λλ νμ μ
μμ μμ§μμ μ λλ©μ΄μ
νκΈ° μν΄ anaconda3λ₯Ό μ¬μ©νκ³ μμ΅λλ€. μ΅μ’
κ²°κ³Όλ μ€μ¬μ ν΅κ³Όνλ μ μ΄ μλ λμ μ΄μ΄μΌ ν©λλ€. Mayavi 4.6.2, vtk 8.1.2 λ° pyqt 5.9.2κ° μλ Python 3.6.8 νκ²½μ κ²½μ° λ€μκ³Ό κ°μ΄ νμλ©λλ€.
λΉ¨κ°μ μ μ μλͺ»λ λμ μ μΈλΆμ μλ κ²μ²λΌ 보μ
λλ€.
μ΄ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ anaconda3μμ μλ‘μ΄ Python 3.5 νκ²½μ λ§λ€κ³ λ€μ μμλ‘ ν¨ν€μ§λ₯Ό μ€μΉνμ΅λλ€.
conda-forgeμ pyqt 4.11.4
pypiμ vtk 8.1.2
conda-forgeμ λ§μΌλΉ 4.6.2
λ€μμ μ¬μ©νμ¬ λ΄ μ
Έμμ κ΄λ ¨ λ³μλ₯Ό μ€μ ν©λλ€.
ETS_TOOLKIT=qt4 λ΄λ³΄λ΄κΈ°
λ΄λ³΄λ΄κΈ° QT_API=pyqt
λ΄ μ½λλ₯Ό μ€ννμ¬ μλμ κ°μ΄ μ¬λ°λ₯Έ λ€μ΄μ΄κ·Έλ¨μ μ»μμ΅λλ€.
.
κ·Έκ²μ μμ λΈ μμ λͺ¨λ λλν μ¬λλ€μκ² κ°μ¬ν©λλ€. 건배!
μ€λ μΌμ° λ¬Έμ λ₯Ό μ¬νν ν(μμ μ»¬λ¬ λ³Ό μμ μ¬μ©) λ€μμ ν¬ν¨νλ conda νκ²½μμ λ¬Έμ λ₯Ό ν΄κ²°ν μ μμμ΅λλ€.
1) νμ΄μ¬ 3.8.5
2) VTK 9.0.1(whl νμΌμ μ¬μ©νμ¬ μ€μΉ)
3) pyqt5
4) Mayaviμ μ΅μ 'Bleeding edge' λ²μ (4.7.3.dev0).
κ·Έλ λ€λ©΄ VTK 9κ° μ΄ λ¬Έμ λ₯Ό ν΄κ²°ν κΉμ?
pyqt5 λ° Mayavi 4.7.2(conda-forgeμμ)κ° ν¬ν¨λ VTK 9.0.1μ΄ μ΄ λ¬Έμ λ₯Ό ν΄κ²°ν¨μ νμΈν μ μμ΅λλ€.
μ, VTK-9.0.1 λ° μ΅μ Mayaviμμ μ΄ λ¬Έμ κ° ν΄κ²°λμμμ νμΈν μ μμ΅λλ€. VTKκ° μμ μ¬νμ΄ μμλ κ³³μΈ κ² κ°μ΅λλ€. μ΄μ μ μ€ν¨νλ Linux μμ€ν μμ ν μ€νΈνμ΅λλ€. μ΄κ²μ νλ₯ν©λλ€. μ κ³ ν΄ μ£Όμ μ κ°μ¬ν©λλ€.
κ°μ₯ μ μ©ν λκΈ
μ§λ λͺ μ£Ό λμ Python3μ μ¬μ©νμ¬ λμΌν λ¬Έμ (μλͺ»λ κΉμ΄ μμ λ λλ§)λ‘ μ΄λ €μμ κ²ͺκ³ μμΌλ©° μ¬κΈ°μμλ λ΄ κ²½νμ 곡μ ν κ²μ΄λΌκ³ μκ°νμ΅λλ€(2019-04-15 νμ¬).
μ°λ¦¬κ° κ°μ νμ΄μ§μ μκΈ° λλ¬Έμ λ΄κ° λ³΄κ³ μλ λ²μ μ λ€μκ³Ό κ°μ΅λλ€.
Mayavi/VTK/traitsλ 'wx' ν΄ν· λλ 'qt4' ν΄ν·μ μ¬μ©ν μ μμ΅λλ€. 'qt4' ν΄ν·μ μ¬μ©νλ©΄ QT APIλ₯Ό μ§μ νλ μΆκ° μ΅μ μ΄ μμ΅λλ€. μ ν μ¬νμ 'pyqt', 'pyqt5', 'pyside' λ° 'pyside2'μ λλ€. μ΄λ νκ²½ λ³μ ETS_TOOLKIT(wx λλ qt4λ‘ μ€μ ) λ° QT_API(pyqt, pyqt5, pyside λλ pyside2λ‘ μ€μ , ETS_TOOLKITκ° qt4λ‘ μ€μ λ κ²½μ°μλ§ μ μ© κ°λ₯)λ‘ μ§μ λ©λλ€.
Mint 18.3(κ·Έλ¦¬κ³ μλ§λ λͺ¨λ Ubuntu 16.04 λ³νμ κ²½μ°)μμ 곡μ Python3μ 3.5.2μ λλ€. μΌλΆ λͺ¨λμ apt/dpkgμμ μ¬μ©ν μ μμ§λ§ μΌλΆλ pipλ₯Ό μ¬μ©νμ¬ μ€μΉν΄μΌ ν©λλ€. Python3μ©μΌλ‘ wxPythonμ μ€μΉν μ μμ΅λλ€. Qtλ₯Ό μ¬μ©νλ©΄ κ²°κ³Όκ° λ¬λΌμ§λλ€.
Mint 19.1(λ° μλ§λ λͺ¨λ Ubuntu 18.04 λ³ν)μ κ²½μ° κ²°κ³Όκ° λΉμ·ν©λλ€. Python3 λ²μ μ 3.6.7μ λλ€. μ¬κΈ°μμ pip3μΌλ‘ wxPython(4.0.1)μ μ€μΉν μ μλ€λ μ μ μ μΈνκ³ λͺ¨λ λͺ¨λμ μ΄μ κ³Ό λμΌν©λλ€. μ΄ κ²½μ° ETS_TOOLKIT=wxλ₯Ό μ€μ νλ©΄ μ¬λ°λ₯Έ κΉμ΄ μμκ° μ 곡λ©λλ€. qt4 ν΄ν·μ κ²½μ° κ²°κ³Όλ Mint 18.3 κ²°κ³Όμ λμΌνμ΅λλ€(μ¦, pyqt λ° pysideλ μ¬λ°λ₯΄κ² λ λλ§λμμ§λ§ pyqt5 λ° pyside2λ κ·Έλ μ§ μμ).
μμ€μμ PySide2λ₯Ό μ»΄νμΌνλ €κ³ μλνκ³ μ»΄νμΌν μ μμμ΅λλ€. κ·Έλ¬λ λ λλ§μ μ¬μ ν ββμλͺ»λμμ΅λλ€.
λν pyenvλ₯Ό μ¬μ©νμ¬ λ€μν λ²μ μ Python3(νΉν 3.5.2 λ° 3.7.3)μ ν μ€νΈν΄ 보μμ΅λλ€. λ κ²½μ° λͺ¨λ, 곡μ PySide μ½λκ° 3.4 μ΄μμ Python λ²μ μ μ§μνμ§ μλλ€λ μ μ μ μΈνκ³ λ pip3μ ν΅ν΄ νμν λͺ¨λμ μ€μΉν μ μμ΅λλ€. PyQt5μ λ§μ°¬κ°μ§λ‘ PySide2λ₯Ό μ¬μ©ν μ μμ΅λλ€. λ λ€ μ λλ‘ μλνμ§ μμ΅λλ€. wxPythonμ μ»΄νμΌν μ μμ΅λλ€.
μ΄μ―€ λλ©΄ VTK λ¬Έμ κ° μλλΌ QT λ¬Έμ κ° μλκΉ(μ§κΈμ wxPythonμ ν¬κΈ°νλ€). νμ§λ§ μ΄μνκ²λ λ΄ μ λ¬΄μ© λ ΈνΈλΆ(Mint 18.3 ν¬ν¨)μμ pyenvλ₯Ό μ¬μ©νμ¬ Python 3.7.3μ μ€ννκ³ μ΄ κ²½μ° κΉμ΄ μμ κ° PyQt5 λλ PySide2λ₯Ό μ¬μ©νμ¬ μ¬λ°λ₯΄κ² λ λλ§
λ§μ§λ§μΌλ‘ VirtualBox(xfceκ° ν¬ν¨λ Mint 19.1)λ‘ λͺ κ°μ§ ν μ€νΈλ₯Ό μ€νν΄ λ³΄μμ΅λλ€. λλ μ¬μ ν λ€λ₯Έ μ‘°ν©μ μλνκ³ μμ§λ§ μ§κΈκΉμ§ κ²°κ³Όλ λμΌν©λλ€. (glxinfoλ OpenGL/GLX λλΌμ΄λ²λ₯Ό SGIλ‘ λ³΄κ³ ν©λλ€).