Mayavi์ฉ Python 3์ ์ง์ํ ๊ณํ์ด ์์ต๋๊น?
Python์ ๊ณง Python 3.4๋ฅผ ์ถ์ํ ์์ ์ ๋๋ค. ์ ๋ Python 3์ด ์ด์ ๋งค์ฐ ์ฑ์ํ์ผ๋ฉฐ ์ฃผ์ ํ์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(numpy, scipy, pandas, matplotlib ๋ฑ)๊ฐ ์ด๋ฅผ ์ง์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ํ ๋ชจ๋ ํ๋ก์ ํธ๋ฅผ Python 3์ผ๋ก ์ฒ์ฒํ ์ฎ๊ธฐ๊ณ ์์ต๋๋ค. "์์" ํ๋ก์ ํธ๋ฅผ ์ํ 2to3 ์ฑ์ผ๋ก ๋งค์ฐ ๊ฐ๋จํ ์์ ์ ๋๋ค. ์ธ์ ๊ฐ๋ ์ค๋๋ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ถฉ๋ํ๊ฑฐ๋ ์ ๋์ฝ๋/๋ฌธ์์ด ์คํธ๋ฆผ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ง๋ง ๋์ ๊ฒ์ ์์ต๋๋ค...
Mayavi ๋ฐ ๊ธฐํ ๊ด๋ จ ํ๋ก์ ํธ๋ฅผ ์ฎ๊ธฐ๋ ๊ฒ์ด ์กฐ๊ธ ๋ ๋ณต์กํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง, ์ค๊ธฐ์ ์ผ๋ก ๊ทธ๋ ๊ฒ ์ด๋ ต์ง ์์ ๊ฒ์ ๋๋ค.
๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ ๋งํ๊ณ ์ถ์ง๋ ์์ง๋ง ๋ง์ ์ฌ๋๋ค์ด Mayavi๊ฐ ํ๋ก์ ํธ๋ฅผ Python 3์ผ๋ก ์ฎ๊ธฐ๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
"Python 4๊ฐ ์ถ์๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ์ง ๋ง์ธ์..."
:-)
๊ฑด๋ฐฐ
@hadim Python 3์ Mayavi ๊ณํ์ Python 3์์ ์ฌ์ฉํ ์ ์๋ VTK์ ์ฐ๊ฒฐ๋์ด ์์ต๋๋ค. ์ด๋ฅผ ์ํ ๋ก๋๋งต์ ๋ถ๋ถ๋ช ํฉ๋๋ค. http://www.vtk.org/Wiki/VTK/Python_Wrapping_FAQ๋ฅผ ์ฐธ์กฐ
:+1:
:+1:
:+1:
๋ด ์๊ฐ์ :thumbsup: ์ข์ ์ผ์ ๋ง์ด ํ์ง ๋ชปํ์ต๋๋ค. ์คํ๋ ค Kitware๊ฐ VTK์์ python3์ ์ง์ํ๋๋ก ์ค๋ํด์ผ ํฉ๋๋ค. ๊ทธ๊ฒ ์์ด๋ Mayavi์ python3 ๋ฒ์ ์ ๋ํ ๊ธฐํ๊ฐ ์์ต๋๋ค.
๋ด ์๊ฐ์ :thumbsup: ์ข์ ์ผ์ ๋ง์ด ํ์ง ๋ชปํ์ต๋๋ค. ๋น์ ์ ์คํ๋ ค ๋ ธ๋ ฅํด์ผ
Kitware๊ฐ VTK์์ python3์ ์ง์ํ๋๋ก ์ค๋ํฉ๋๋ค. ๊ทธ๊ฒ ์์ด๋ ์๋ค.
Mayavi์ python3 ๋ฒ์ ์ ๋ํ ๊ธฐํ.
๊ฐ์กฐํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
VTK์์ Python 3์ผ๋ก ์ด์ํ๋ ๊ฒ์ ๋ํ ์ ์ ํ ๋ฒ๊ทธ ๋ณด๊ณ ์์ ๋ํ ๋งํฌ๋ฅผ ์ ๊ณตํ์ฌ +1์ด๋ผ๊ณ ๋งํ๋ ์ฌ์ฉ์๋ฅผ ๋ฆฌ๋๋ ์ ํ ์ ์์ต๋๊น?
๊ธฐ๋ก์ ์ํด VTK ๋ฒ๊ทธ ์ถ์ ๊ธฐ์์ ํฐ์ผ์ ์ด์์ต๋๋ค. http://www.vtk.org/Bug/view.php?id=15554
์ข์ ์์! David Gobbi(VTK Python ๋ฐ์ธ๋ฉ ๊ด๋ฆฌ์)๋ ํด๋น ๋ฒ๊ทธ ํฐ์ผ์ ๋ํด ์๋ตํ์ผ๋ฉฐ Py3 ์ง์์ ์ํ ๋ฐ์ธ๋ฉ์ ์ค๋นํ๊ธฐ ์ํด ์ด๋ฏธ ๋ณํฉ ์์ฒญ์ ์ ์ํ์ผ๋ฉฐ ์ด๋ฒ ์ฃผ๋ง๋ถํฐ Py3 ์ง์์ ๋ํด ๊ตฌ์ฒด์ ์ผ๋ก ์์
ํ๊ณ ์๋ค๊ณ ๋งํ์ต๋๋ค.
http://www.vtk.org/Bug/view.php?id=15554#c34787
์ด๊ฒ์ด ํ๋ก์ธ์ค์ ์์์ผ ๋ฟ์ด๊ณ Python 3 ์ง์์ด VTK ๋ฆด๋ฆฌ์ค์ ๋๋ฌํ๊ธฐ๊น์ง๋ ์๊ฐ์ด ๊ฑธ๋ฆด ์ ์๋ค๋ ๊ฒ์ ์์ ํ ์ดํดํ์ง๋ง Mayavi๊ฐ Python 3์ ์ํด ์ค์ค๋ก๋ฅผ ์ค๋นํ๊ธฐ ์ํด ์ ๊ทน์ ์ผ๋ก ํ ์ ์๋ ์ผ์ด ์๋์ง ๊ถ๊ธํฉ๋๋ค. Python 3์ ์ง์ํ๊ธฐ ์ํด Mayavi ์ฝ๋๋ฒ ์ด์ค ์์ฒด์ ํ์ํ ๋ณ๊ฒฝ ์ฌํญ์ด ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ด ์์ ์ด ๋ฌด์์ธ์ง์ ๋ํ ํ ๋ก ์ ์์ํ ๊ฐ์น๊ฐ ์์ต๋๊น?
@jabooth๋ , ๊ฐ์ฌ
๋ด๊ฐ ๋งํ ์ ์๋ ํ Python 3์ผ๋ก ์ด๋ํ๋ Mayavi์ ์ ์ฒด ๊ทธ๋ฆผ์ Python 3์ ์ง์ํ๋ ์ฃผ์ ์ข ์์ฑ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ํ์ฌ ์ํ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
Python 3 VTK ๋ฐ์ธ๋ฉ์ด ์ฃผ์ ๋ถ๋ถ์ด๋ฉฐ ์์ ์ด ์งํ๋๊ณ ์๋ค๋ ์ฌ์ค์ ์ข์ ์์์ด์ง๋ง VTK์ ์์ ์ ์ธ ๋ฆด๋ฆฌ์ค์์ ์ฌ์ฉํ ์ ์๋ ๋ฐ์ธ๋ฉ์ด ์์ผ๋ฉด Python 3 ์นํ์ ์ธ Mayavi์์ ์์ ํ๊ณ ํ ์คํธํ๊ธฐ๊ฐ ๋งค์ฐ ์ด๋ ค์ธ ๊ฒ์ ๋๋ค.
๊ฒ๋ค๊ฐ Mayavi ์์ฒด๋ python 3๋ ์ง์ํด์ผ ํ๋ traits, traitsui ๋ฐ pyface์ ํฌ๊ฒ ์์กดํฉ๋๋ค. ์ด๋ฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์์ ์ด ์งํ ์ค์ด์ง๋ง ์ง์์ ์์ง ์์ต๋๋ค.
_๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ _, ํ์ฌ ์ฐ๋ฆฌ๊ฐ ํ ์ ์๋ ์ผ์(๊ทธ๋ฆฌ๊ณ @dmsurti ๋ ์ด๋ฏธ ์์๋จ) ๋ณด๋ฅ ์ค์ธ ๋ฒ๊ทธ๋ฅผ ์์ ํ์ฌ ํ ์คํธ ๋ฒ์๋ฅผ ๊ฐ์ ํ๊ณ Mayavi ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๋จ์ํํ์ฌ Python 3์์ ์ข ์์ฑ์ ์ฌ์ฉํ ์ ์์ ๋ Mayavi๋ฅผ Python 3์ผ๋ก ์ฎ๊ธฐ๊ธฐ ์ํ ๋ ธ๋ ฅ์ด ๋ ์ ์.
" ๋ฏธ๋ ๊ฐ์ ธ์ค๊ธฐ์์"๋ก ์ ํํ๋ ๊ฒ๊ณผ ๊ฐ์ ์์
์ ์ํํ ์๋ ์์ต๋๋ค.
print_function, division", ์๋ ๊ฐ์ ธ์ค๊ธฐ ์ ๊ฑฐ ๋ฐ ์ ํ
6๊น์ง์ ๋ชจ๋ ๊ฒ.
์ง๊ธ ๋น์ฅ ํ๋ ๊ฒ์ ์๊ฐ๋ญ๋น๋ผ๊ณ ์๊ฐํฉ๋๋ค. Mayavi๋ ํ๋ฃจ ๋ง์ ํด๊ฒฐํ ์ ์๋ ์ผ์ ๋๋ฌด ๋ง์ด ํ์ง ์์ต๋๋ค. ๋ ํฐ ๋ฌธ์ ๋ VTK๊ฐ Python 3์ ์ง์ํ๋ ๊ฒ์ด๋ฏ๋ก ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ ํ์ํ ๋ณ๊ฒฝ์ ํ ๊ฒ์ ๋๋ค. VTK๊ฐ ์์ผ๋ฉด ํ ์คํธํ ์ ์์ต๋๋ค. David Gobbi์ ์ต๊ทผ ์์ ์ ์๊ณ ์์ง๋ง ๊ณต์์ ์ผ๋ก ์ง์๋์ด VTK์ ๋ณํฉ๋ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํฉ๋๋ค.
python-py3k ๋ถ๊ธฐ๊ฐ ๋ฐฉ๊ธ ๋ณํฉ๋ ๊ฒ ๊ฐ์ต๋๋ค: https://gitlab.kitware.com/vtk/vtk/merge_requests/478
tvtk ํํฉ ์์๋ ๋ถ ๊ณ์ ๊ฐ์? ์ฌํด ๋ง์นจ๋ด py3k๋ก ์ ํํ ์ ์๋ค๋ฉด ์ ๋ง ์ข์ ๊ฒ์ ๋๋ค!
$ python
Python 3.4.3 (default, Mar 25 2015, 17:13:50)
[GCC 4.9.2 20150304 (prerelease)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import vtk
>>>
์ด์ผ!
์ด์ ๋ํ ์ง์ ์ด ์์ต๋๊น? Python 3 ์ง์์ ๋ค์ ๋ง์ด๋ ๋ฆด๋ฆฌ์ค vtk 6.3.1์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
#250 ์ฐธ์กฐ
pull request #250์ด ๋ณํฉ๋์์ต๋๋ค. ํ์.
๋ช ๊ฐ์ง ๋น ๋ฅธ ๊ธ์ ์ ์ธ ํผ๋๋ฐฑ
Mayavi 4.4.4์ ํจ๊ป WinPython-64bit-3.4.4.1์ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ์ ์๋ํฉ๋๋ค. ๋ชจ๋ ๊ฐ๋ฐ์์๊ฒ ๊ฐ์ฌํฉ๋๋ค!
1.) VTK-7.0.0-cp34-cp34m-win_amd64.whl (http://www.lfd.uci.edu/~gohlke/pythonlibs/#vtk)
2.) pip ์ค์น ๋ง์ผ๋น
@IVIUPPET ,
์ฌ๊ธฐ์ ์ธ๊ธ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ํํฉ๋๊น
https://github.com/enthought/mayavi/pull/250#issuecomment -207719214
๋ฌธ์ ๋ฅผ ํด๊ฒฐ?
@solarjoe
์๋ํ์ง๋ ์์์ง๋ง ๋งค์ฐ ์ ํ๋ Python ๋ฐฐ๊ฒฝ์์ ๋์จ ๋ค๋ฅธ ์ฌ๋๋ค์ ์ํด ์์ ๊ฒฐ๊ณผ๋ฅผ ๊ฒ์ํ๊ธฐ ์ํด ์ฌ๊ธฐ๋ก ๋์์์ง๋ง Matlab ๋ฐ C#์ ๋ํ ๊ฒฝํ์ด ์์ต๋๋ค.
Python 3.5์์ ๊ทํ์ ๋งํฌ(Python 3.4์ฉ)๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ํ๊ธฐ ๋๋ฌธ์ ์ธ๊ธํ ์ง์๋์ง ์๋ ํ๋ซํผ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ณ ์ฆ์ ์ญ์ ๋์์ต๋๋ค.
ํ์ง๋ง ๊ทํ์ ๋ต๋ณ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ํ๋ก์ฐํ ์ค์ ์ ๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์ธ์.
Python 3.5์ฉ Anaconda๋ฅผ ์ค์น/์ฌ์ฉ ์ค์ ๋๋ค. ๋ฒ์ 3.19.1. ๋๋ ํ 8.1.1์ ์ฌ์ฉํ๋ค. (์ด ์ค ์ด๋ ๊ฒ๋ ๊ทธ๋ค์ง ์ค์ํ์ง ์์). ๊ฐ๋ฅํ๋ฉด 64๋นํธ.
๊ทธ๋ฐ ๋ค์ ๋ค์ด๋ก๋ํ์ต๋๋ค.
1) VTK-7.0.0-cp35-cp35m-win_amd64.whl
๋ฐ์ : http://www.lfd.uci.edu/~gohlke/pythonlibs/#vtk
python 3.5 VTK์ 64๋นํธ ๋ฒ์ , Mayavi์ ๋ํ ์ค์ํ ์ข
์์ฑ(solarjoe์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!)
cd to downloadDir:
ํ ์ค์น VTK-7.0.0-cp35-cp35m-win_amd64.whl
vcvarsall.bat์ ๋ถ์ฌ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ์ฝ๊ฐ์ ์๊ฐ์ด ๊ฑธ๋ ธ์ต๋๋ค. ์ด ์ค๋ ๋๋ VTK๊ฐ python 3.5์ ์๋ํ๋๋ก ํ๊ธฐ ์ํด ์ด ์ค๋ ๋๋ฅผ ์ฐพ์ ํ ๋ฐ์ํ ๋ค์ ๋ฌธ์ ์์ต๋๋ค. ์ด์ ๋ฒ์ ์ Visual Studio๋ฅผ ์ค์นํ์ฌ ๋ค๋ฅธ ํ๊ฒฝ ๋ณ์์ ํญ๋ชฉ์ ์ถ๊ฐํ๋ ค๊ณ ํ์ต๋๋ค. ์๋ํ์ง ์์์ต๋๋ค. Python 3.5์ฉ C++ ์ปดํ์ผ๋ฌ๊ฐ ํฌํจ๋ Visual Studio Community 2015๋ฅผ ์ป์์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ๊ณผ์์ด๋ผ๋ ๊ฒ์ ์๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ๋ค๋ฅธ ์ผ์ ํ๋ ๋ฐ ๋ช ์๊ฐ์ ๋ณด๋์ต๋๋ค. ๊ทธ๋์ ์ ์๊ฒ๋ ์ด๊ฒ์ด ์ ํญ์ด ๊ฐ์ฅ ์ ์ ๊ฒฝ๋ก์์ต๋๋ค(์ ๋ EE์ ๋๋ค). ์ค์นํ๋ ๋์ "์ฌ์ฉ์ ์ง์ "์ ์ํํ ๋ค์ "ํ๋ก๊ทธ๋๋ฐ ์ธ์ด"์์ Python ๋๋ C++์ ๊ด๋ จ๋ ๋ชจ๋ ํญ๋ชฉ์ ํ์ธํฉ๋๋ค.
2) pip ์ค์น ๋ง์ผ๋น
๊ทธ๊ฒ์ ํจ๊ณผ๊ฐ ์์๋ค. ์ธํฐ๋ท ๊ฒ์์ ํ๋ฃจ ํ์ ๋ง์นจ๋ด Matlab๊ณผ ์ผ์นํ๊ฑฐ๋ ์ด๊ณผํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ 3D ๊ทธ๋ํ๋ฅผ ์ป์์ต๋๋ค! ๋ด Matlab์์ Python์ผ๋ก์ ์ ํ์ด ์๋ฃ๋์์ต๋๋ค :D
์์ @IVIUPPET ๋๊ธ์ ์ฝ์ผ "vcvarsall.bat๋ฅผ ์ฐพ์ ์ ์์"์ด๋ผ๋ ๊ณ ํต์ ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ ์ด๋ผ๋ Microsoft์ ์ต๊ทผ(4์ 11์ผ) ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ
IVIUPPET์ ์ ์ฉํ ์ง์นจ์ ๋ฐ๋ผ Anaconda python 3.5์ Mayavi๋ฅผ ์ค์นํ ํ ์ค์ ๋ก ์คํํ๋ ๋ฐ ์ฅ์ ๋ฌผ์ด ์๊ฒผ์ต๋๋ค.
Mayavi๋ฅผ ๊ฐ์ ธ์ฌ ๋ ๋ค์ ๋ฐํ์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
RuntimeError: Invalid Qt API 'pyqt5', valid values are: 'pyqt' or 'pyside'
Mayavi๋ pyqt5(์๋์ฝ๋ค ๊ธฐ๋ณธ๊ฐ)์์ ์คํ๋์ง ์์ต๋๊น? ๊ทธ๋ ๋ค๋ฉด pyqt4๋ฅผ ์ค์นํด์ผ ํ๋ฉฐ pyqt4๋ฅผ Qt API๋ก ์ง์ ํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํฉ๋๊น?
@dreme ๋ถํํ๋ ๋๋ ์์ง ์ด๋ค ์ข ๋ฅ์ GUI๋ ๊ตฌํํ์ง ์์๊ฑฐ๋ ๋ด ํ๋ก๊ทธ๋จ์ QT API๊ฐ ํ์ํ์ง๋ง ๋ฌธ์๋ฅผ ํ์ด๋ณธ ๊ฒฐ๊ณผ QT5๋ก ์ ํํ๋ ค๋ฉด ์์ง ํด์ผ ํ ์ผ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. Mayavi์ ์ฝ๊ฐ์ ๋นํธํ์ฑ์ด ์๋ ๊ฒฝ์ฐ์๋ ๋๋ผ์ง ์์ ๊ฒ์ด์ง๋ง ๊ทํ์ ์ค๋ฅ๋ ๋์๊ฒ ์ด๋ฅผ ์ ์ํ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค. Mayavi๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ฌธ์ ๋ฅผ ๊ฒฉ๋ฆฌํ๊ฑฐ๋ QT์ ๊ด๋ จ๋ ๋์์ ์์ฒญํฉ๋๋ค. ์ผ๋จ ๋๊ฐ๋ฉด ์คํ์ค์ ์ฝ๋๋ฅผ ๋จ๊ฒจ๋ ๋ GUI๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ต๋๋ค. Mayavi ๋ฐ ๋ ๋์ ์๋ฃจ์ ๊ณผ์ ๋นํธํ์ฑ์ ๋ฐ๊ฒฌํ๋ค๋ฉด ๊ณ์ ์๋ ค์ฃผ์ธ์!
์๋ตํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
๋จผ์ Qt4๋ฅผ ์ค์นํด ๋ณด๊ฒ ์ต๋๋ค. Anaconda์ Qt5์ ์ํํธ์จ์ด ์ถฉ๋์ด ๋ฐ์ํ์ง ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๋ํ VTK๋ฅผ ์ปดํ์ผํ ๋ ์ปดํ์ผ ์๊ฐ์ Qt4 ๋๋ Qt5 ์์ ฏ์ ์ํ๋์ง ์ ํํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์, http://www.vtk.org/Wiki/VTK/Building/Windows์ ์ง์นจ์ ์ฌ์ฉํ์ฌ ์์ค(http://www.vtk.org/download/)์์ VTK ์ปดํ์ผ์ ์๋ํ์ต๋๋ค .
๊ทธ๋ฌ๋ Qt5 ์์ ฏ์ ์ง์ ํ๋ ์ต์ ์ ๋ณผ ์ ์์๊ณ ์ด์จ๋ ์ปดํ์ผ ํ๋ก์ธ์ค(Microsoft Visual Studio Community 2015 ์ฌ์ฉ)๊ฐ ์คํจํ์ต๋๋ค.
115> Generating Code...
115>LINK : fatal error LNK1104: cannot open file '..\..\lib\Debug\vtkViewsCore-7.1.lib'
117>------ Build started: Project: ALL_BUILD, Configuration: Debug Win32 ------
117> Building Custom Rule C:/MyProjects/VTK-src/CMakeLists.txt
117> CMake does not need to re-run because C:\MyProjects\CMakeFiles\generate.stamp is up-to-date.
========== Build: 18 succeeded, 99 failed, 0 up-to-date, 0 skipped ==========
VTK_Group_Qt๋ฅผ ์ผ๊ณ VTK_QT_VERSION์ 5(๊ธฐ๋ณธ๊ฐ์ 4)๋ก ์ค์ ํ๊ณ ์ถ์ ๊ฒ์ ๋๋ค. ์ ๋ ๊ฝค ์ค๋ซ๋์ VTK/ParaView์ ํจ๊ป Qt 5๋ฅผ ์ฌ์ฉํ๋ Tomviz๋ฅผ ๊ฐ๋ฐํ๊ณ ํจํค์งํ์ต๋๋ค. ๊ฝค ์ ์๋ํฉ๋๋ค. ์์ ํด์ผ ํ ๋ช ๊ฐ์ง ๋ฒ๊ทธ๊ฐ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ํ Windows์์ Visual Studio 2015๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋ํ๊ณ ์์ผ๋ฉฐ ๋ช ๊ฐ์์ด ์ง๋ฌ์ต๋๋ค.
@cryo๋ ๊ฐ์ฌํฉ๋๋ค!
์ ๋ C++ ํ๋ก๊ทธ๋๋จธ๊ฐ ์๋๋ฉฐ ํ๋ก๊ทธ๋จ ์ปดํ์ผ์ ๋ํ ๊ฒฝํ์ด ๊ฑฐ์ ์๊ธฐ ๋๋ฌธ์ ๊ด์ฐฎ์ผ์๋ค๋ฉด ํ์ ์ง๋ฌธ์ด ์์ต๋๋ค.
"VTK_Group_Qt๋ฅผ ์ผ ๋ค์ VTK_QT_VERSION์ 5๋ก ์ค์ ํ์ญ์์ค"๋ผ๊ณ ๋งํ๋ฉด ์ ํํ ๋ฌด์์ ์๋ฏธํฉ๋๊น? VTK_Group_Qt ๋ฐ VTK_QT_VERSION ์ฉ์ด๊ฐ ๋ง์ CMakeLists.txt ํ์ผ๊ณผ vtkiOS.cmake, vtkAndroid.cmake, VTKConfig.cmake.in ๋ฐ vtkQt.cmake ํ์ผ์ ๋ํ๋๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ cmake-gui๋ฅผ ์ฌ์ฉํ๊ณ ๋น๋ ๋๋ ํ ๋ฆฌ๋ฅผ ๊ฐ๋ฆฌํค๋ ๊ฒ์ ๋๋ค. VTK_Group_Qt๋ฅผ ํด๋ฆญํ์ฌ ์์์ ์ฒดํฌ ํ์๋ฅผ ํ๊ณ ๊ตฌ์ฑ์ ํด๋ฆญํ๋ฉด VTK_QT_VERSION์ด ์ ๋ณ์๋ก ๋ํ๋ฉ๋๋ค. ๋๋ ๋ค์๊ณผ ๊ฐ์ CMake ๋ช ๋ น์ค์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
cmake -DVTK_Group_Qt:BOOL=ON -DVTK_QT_VERSION:STRING=5 C:/path/to/vtk/src
์ด๋ค์ ๋ชจ๋ ๋น๋ ๋๋ ํ ๋ฆฌ์ CMakeCache.txt์ ์ ์ฅ๋์ง๋ง cmake-gui, cmake ๋ช ๋ น์ค ๋ฑ์ ์ฌ์ฉํ์ฌ ์กฐ์ํ ์ ์์ต๋๋ค. ๋ํ ๊ฐ์ ๋ฐฉ์์ผ๋ก Python ๋ํ์ ์ผ์ผ ํฉ๋๋ค. ๊ทธ๊ฒ์ด ๋ ๋ช ํํด์ง๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
@dreme Qt5 ๋ฅผ ์ฌ์ฉํ๋๋ก VTK๋ฅผ ์ปดํ์ผํ์๊ฒ ์ต๋๊น? Mayavi/ETS๋ Qt4(๋๋ WX)๋ง ์ง์ํฉ๋๋ค: https://github.com/enthought/mayavi/issues/450 . ์ ๊ฐ ๋น ์ง๊ฒ ์๋ค๋ฉด ์ฃ์กํฉ๋๋ค...
@cryos ๊ธฐ๋ค๋ ค ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. cmake๊ฐ ์ค์น๋ ๋ cmake -gui ํ๋ก๊ทธ๋จ๋ ์ ๊ณต๋๋ค๋ ๊ฒ์ ๋ชฐ๋์ต๋๋ค.
์, cmake-gui๋ฅผ ์์ํ๊ณ ์์ค(C:/MyProjects/VTK-src) ๋ฐ ๋น๋(C:/MyProjects/VTK-bin) ํด๋๋ฅผ ํ์ํ์ต๋๋ค.
๊ทธ๋ฌ๋ Configure
๋ฒํผ์ ํด๋ฆญํ๋ฉด ๋ง์ ์ค๋ฅ ๋ฉ์์ง๊ฐ ๋ํ๋ฉ๋๋ค(์ฒจ๋ถ ์ฐธ์กฐ).
๋ํ ๋์ด๋ ๋ณ์ ์ค์์ VTK_Group_Qt ์ฉ์ด๊ฐ ํ์๋์ง ์์ต๋๋ค(์ฒจ๋ถ ๊ทธ๋ฆผ ์ฐธ์กฐ).
Add Entry
๋ฒํผ์ผ๋ก ์ถ๊ฐํด์ผ ํฉ๋๊น?
C ๋๋ C++ ์ปดํ์ผ๋ฌ๋ฅผ ์ฐพ์ ์ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๊ธฐ์ ์ค์ ๋ก ์คํจํ๊ธฐ ๋๋ฌธ์ ๊ฑฐ๊ธฐ์ ์์ต๋๋ค. Visual Studio 2015๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค๊ณ ๋งํ์ง๋ง ์คํฌ๋ฆฐ์ท์ ์์ฑ๊ธฐ๋ Visual Studio 2017(์ ๋ง ์๋ก์ด ๊ธฐ๋ฅ์ด๋ฉฐ ์ง๊ธ์ ํผํ๊ฒ ์ต๋๋ค)์ด๋ผ๊ณ ํ์๋ฉ๋๋ค. ๋น๋ ํธ๋ฆฌ๋ฅผ ์ญ์ ํ๊ณ ๋ค์ ์์ํด์ผ ํ์ง๋ง Visual Studio 2015๋ฅผ ์ ํํด์ผ ํฉ๋๋ค.
@jonathanrocher ์๋ ํ์ธ์. ์ ๊ถ๊ทน์ ์ธ ๋ชฉํ๋ @IVIUPPET ์ด ํ ์ ์๋ ๊ฒ์ฒ๋ผ ์๋์ฝ๋ค ํ์ด์ฌ 3.5์์ mayavi๋ฅผ ์คํํ๋ ๊ฒ์ ๋๋ค.
๊ทธ์ ์ง์์ ๋ฐ๋ผ Mayavi OK๋ฅผ ์ค์นํ ์ ์์์ง๋ง ๊ฐ์ ธ ์ค๋ ค๊ณ ํ๋ฉด ๋ค์ ๋ฐํ์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
RuntimeError: Invalid Qt API 'pyqt5', valid values are: 'pyqt' or 'pyside'
๊ทธ๋์ VTK๋ฅผ ์ปดํ์ผํ์ฌ Anaconda์ ํจ๊ป ์ ๊ณต๋๋ ๊ธฐ๋ณธ Qt ๋ฒ์ ์ธ Qt5๋ฅผ ์๋์ผ๋ก ์ฌ์ฉํ๋๋ก ํ๋ ๊ฒ์ด ํด๊ฒฐ์ฑ ์ผ ์ ์๋ค๊ณ ์๊ฐํ์ต๋๋ค.
ํ์ง๋ง ์์ ๋๊ธ์์ ์ ์ ์๋ฏ์ด ๋๋์ด ์์ ์์ ํ๋ฅ์ง๋ฅํ๊ณ ์์ต๋๋ค ...
Mayavi๊ฐ ๋์ WX๋ฅผ ์ฌ์ฉํ๋๋ก ํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
@dreme - pysph ํจํค์ง์ ๋ํ conda๋ก ๋ค์ ์ง์นจ์ ํ ์คํธํ์ต๋๋ค( ์ฌ๊ธฐ ์ฐธ์กฐ).
$ conda install -c conda-forge matplotlib jupyter pyside
$ conda install -c menpo mayavi
๋ฌธ์ ๊ฐ ์์ผ๋ฉด ์๋ ค์ฃผ์ญ์์ค.
์๋ ํ์ธ์ @prabhuramachandran , ๊ทธ ์กฐ์ธ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ์ ์๊ฒ ํจ๊ณผ๊ฐ ์๋ ๊ฒ ๊ฐ์์ต๋๋ค.
๋ด๊ฐ ์
๋ ฅํ์ ๋: conda install -c conda-forge matplotlib jupyter pyside
๋ค์๊ณผ ๊ฐ์ ์ค๋ฅ ๋ฉ์์ง๊ฐ ๋ํ๋ฉ๋๋ค.
Fetching package metadata ...........
Solving package specifications: ....
UnsatisfiableError: The following specifications were found to be in conflict:
- matplotlib
- python 3.5*
Use "conda info <package>" to see the dependencies for each package.
python 3.5๋ฅผ ์ข์ํ์ง ์๋ ๊ฒ ๊ฐ์์ python 3.4์ฉ ์ ํ๊ฒฝ์ ๋ง๋ค์์ต๋๋ค. ๋ conda install ๋ช ๋ น์ด ๋ชจ๋ ์ค์ ๋ก ์๋ํ์ต๋๋ค. ์ฆ, ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
$ conda install -c conda-forge matplotlib jupyter pyside
$ conda install -c menpo mayavi
๊ทธ๋ฌ๋ jupyter notebok์์ mayavi๋ฅผ ๊ฐ์ ธ์ค๋ ค๊ณ ํ ๋ ์ฌ์ ํ ๋์ผํ ์ด์ ๋ฐํ์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
RuntimeError: Invalid Qt API 'pyqt5', valid values are: 'pyqt' or 'pyside'
@dreme ๋ , menpo
์ฑ๋์์ mayavi
๋น๋๋ฅผ ๋ง๋ค์์ต๋๋ค.
์ฐ๋ฆฌ๋ ๊ฐ์ ๋ฌธ์ ๋ฅผ ๊ฒช์์ต๋๋ค. ์ฐ๋ฆฌ๋ฅผ ์ํ ํด๊ฒฐ์ฑ
์ ์ค์น ํ pyqt
์์ ๊ฐ์ ๋ก ๋ค์ด๊ทธ๋ ์ด๋ํ๋ ๊ฒ์ด์์ต๋๋ค.
> conda install -c menpo mayavi
> conda install pyqt=4.11.4
๋๋ ์ต์ข ๋ค์ด๊ทธ๋ ์ด๋๊ฐ ์ ์ด๋ ํ์ค ์๋์ฝ๋ค ์ฑ๋๊ณผ ์ฐ๋ฆฌ ์ฑ๋์์ ๊ฐ์ ธ์จ ๋ค๋ฅธ ๋ชจ๋ ๊ฒ๊ณผ ์ ์๋ํ๋ค๋ ๊ฒ์ ์์์ต๋๋ค.
์ฌ์ค, @scienceopen ์ https://github.com/enthought/mayavi/issues/448#issuecomment -258065329์์ ์๋ก์ด ํ๊ฒฝ์ ๋ง๋ค๊ณ ์ถ๋ค๋ฉด ๋ ์ฐ์ํ ์๋ฃจ์ ์ ์ ๊ณตํฉ๋๋ค. ๊ฐ๋ค)
์ , QT4 ํ๊ฒฝ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ HiDPI ๋น Mayavi ์์ ์ QT5๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Python 3 ์ง์์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. QT5 ์ง์์ 3๋ ๋ฏธ๋ง์ด ์์๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๋ํ ์์์ ์ธ๊ธํ๋ฏ์ด(https://github.com/enthought/mayavi/issues/84#issuecomment-205720564) Windows์ ์๊ณ Anaconda์ ๋ฐ์ธ๋ฉ๋์ง ์์ ๊ฒฝ์ฐ Mayavi๊ฐ WinPython๊ณผ ํจ๊ป ์๋ํ๋๋ก ํ๋ ๊ฒ์ ์ ๋ง ์ฝ์ต๋๋ค.
์ด ๋ฌธ์ ์ ๋ํ ์ง์์ ์ธ ๋์์ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ ๋ง ๊ฐ์ฌํฉ๋๋ค.
@jabooth์์ ์ ๊ณตํ๋ ๋ ๊ฐ์ง ์๋ฃจ์ (
C:\Users\dreme\Anaconda3\envs\py34\lib\site-packages\traitsui\qt4\__init__.py in <module>()
16 # import pyface.qt before anything else is done so the sipapi
17 # can be set correctly if needed
---> 18 import pyface.qt
19
20 #----------------------------------------------------------------------------
C:\Users\dreme\Anaconda3\envs\py34\lib\site-packages\pyface\qt\__init__.py in <module>()
42 elif qt_api != 'pyside':
43 raise RuntimeError("Invalid Qt API %r, valid values are: 'pyqt' or 'pyside'"
---> 44 % qt_api)
RuntimeError: Invalid Qt API 'pyqt5', valid values are: 'pyqt' or 'pyside'
[์ค์ํ์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง Jupyter ๋ ธํธ๋ถ์์ ์ฝ๋๋ฅผ ์คํ ์ค์ ๋๋ค.]
์ ๋ Anaconda python ๋ฐฐํฌํ์ ์ ๋ง ์ข์ํ์ง๋ง @solarjo๊ฐ ์ ์ํ ๋๋ก
์ด ๊ฒฝ์ฐ @solarjoe , ์ด๋ค ์ค์น ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ์
จ์ต๋๊น? WinPython 3.5.2.3Qt5
๋๋ WinPython 3.5.2.3
?
@dreme ๋๋ ๋น์ ์ด ํ ํ์ ๊ฐ์ ํฉ๋๋ค
conda create -n oldqt python=3 pyqt=4
ํด๋น ํ๊ฒฝ์ ํ์ฑํํ ๊ฒ(Windows์ฉ)
activate oldqt
๋๋ Mac/Linux์ฉ
source activate oldqt
QT_API
ํ๊ฒฝ ๋ณ์๋ฅผ ๋ฌด์ธ๊ฐ๋ก ์ค์ ํ์ต๋๊น? ์ฌ์ฉ๋ ๋ก์ง์ https://github.com/enthought/pyface/blob/master/pyface/qt/__init__.py ๋ฅผ ์ฐธ์กฐ
@dreme ๋๋ ๋น์ ์ด ํ ํ์ ๊ฐ์ ํฉ๋๋ค
conda create -n oldqt python=3 pyqt=4
ํด๋น ํ๊ฒฝ์ ํ์ฑํํ ๊ฒ(Windows์ฉ)oldqt ํ์ฑํ
๋ค, ๊ทธ๊ฒ ์ ๊ฐ ํ ์ผ์ ๋๋ค @scienceopen
QT_API ํ๊ฒฝ ๋ณ์๋ฅผ ๋ฌด์ธ๊ฐ๋ก ์ค์ ํ์ จ์ต๋๊น? ์ฌ์ฉ๋ ๋ก์ง์ https://github.com/enthought/pyface/blob/master/pyface/qt/__init__.py ๋ฅผ ์ฐธ์กฐ
์๋์, ์ด๊ฒ์ ๋ชจ๋ anaconda 3.5๋ฅผ ์๋ก ์ค์นํ์ ๋ ์ํ๋ฉ๋๋ค.
ํ์ง๋ง QT_API
๋ณ์์ ๊ด๋ จ์ด ์๋ค๊ณ ์๊ฐํ๋ ๊ฒ์ด ์ณ์ ์๋ ์์ต๋๋ค. Jupyter ๋
ธํธ๋ถ์ ์ด์ ๋ํ ๊ธฐ๋ณธ ์ค์ ์ด ์์ต๋๊น? ์ด๊ฒ์ mayavi์ ์ ํฉํ ๊ฒ์ผ๋ก ์ค์ ํ ์ ์์ต๋๊น?
ํญ์ env ๋ณ์๋ฅผ ๋ณ๊ฒฝํด ๋ณผ ์ ์์ต๋๋ค. Jupyter๊ฐ ๋ณ๊ฒฝํ์ง๋ง ์๋ง๋ ๋ค๋ฅธ ๊ฒ์ผ๋ก ์์ฌ๋ฉ๋๋ค. ๋ค์์ ์ฌ์ฉํ์ฌ ํ์ฌ ๊ฐ์ ๊ฒ์ฌํ ์ ์์ต๋๋ค.
echo %QT_API%
๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ๋ณ๊ฒฝ
set QT_API= pyqt
Windows์์ http://superuser.com/questions/79612/setting-and-getting-windows-environment-variables-from-the-command-prompt
@dreme , Qt4 ๋ฐ Mayavi 4.4.4์ ํจ๊ป ์ด์ ๋ฒ์ ์ธ WinPython-64bit-3.4.4.1์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
1.) VTK-7.0.0-cp34-cp34m-win_amd64.whl (http://www.lfd.uci.edu/~gohlke/pythonlibs/#vtk)
2.) pip ์ค์น ๋ง์ผ๋น
http://www.lfd.uci.edu/~gohlke/pythonlibs/ ์์ Mayavi ์ค์น๋ฅผ ์๋ํ๊ณ Mayavi ํ์ด์ง๋ฅผ ๊ฒ์ํ ์๋ ์์ต๋๋ค. ์ฌ๋ฐ๋ฅธ ๋ฒ์ ์ ์ ํํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
WinPython์ Qt5 ๋ฒ์ ์์ ์๋ํ๋์ง ํ์คํ์ง ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyqt4 ๋ฅผ ์ค์นํด์ผ ํ ์๋ ์์ต๋๋ค.
ํญ์ env ๋ณ์๋ฅผ ๋ณ๊ฒฝํด ๋ณผ ์ ์์ต๋๋ค. Jupyter๊ฐ ๋ณ๊ฒฝํ์ง๋ง ์๋ง๋ ๋ค๋ฅธ ๊ฒ์ผ๋ก ์์ฌ๋ฉ๋๋ค. ๋ค์์ ์ฌ์ฉํ์ฌ ํ์ฌ ๊ฐ์ ๊ฒ์ฌํ ์ ์์ต๋๋ค.
์์ฝ %QT_API%
๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ๋ณ๊ฒฝQT_API = pyqt ์ค์
๊ธ์, ์ด๊ฒ์ ๋๋ฅผ ๋ฏธ์น๊ฒ ํ ๋ฟ์
๋๋ค. @jenshnielsen์ด ์กฐ์ธํ ๋๋ก QT_API
์ ๋ํ Windows ํ๊ฒฝ ๋ณ์๋ฅผ pyqt ๋ก ์ค์ ํ๊ณ SET
๋ช
๋ น์ ์คํํ์ฌ ์ค์ ๋์๋์ง ๋ค์ ํ์ธํ์ต๋๋ค.
๊ทธ๋ฌ๋ fmd, Qt API๊ฐ pyqt5 ๋ผ๊ณ ๋ถํํ๋ ๋์ผํ ์ด์ ๋ฐํ์ ์ค๋ฅ๊ฐ
๊ทธ๋ฐ ๋ค์ Anaconda Navigator๋ฅผ ์ข ๋ฃํ๊ณ ๋ค์ ํ์ธํ์ ๋ QT_API ๋ณ์๊ฐ ์์ ํ ์ฌ๋ผ์ก์ต๋๋ค!
๊ทธ๋ฌ๋ Anaconda ๋ด๋น๊ฒ์ดํฐ๋ฅผ ๋ค์ ์์ํ๊ณ "oldqt" ์ปค๋์์ Jupyter ๋ ธํธ๋ถ์ ์ด๋ฉด pyqt5์ ๋ํด ๋ถํํ๋ ๋์ผํ ์ด์ ๋ฐํ์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ค์ ํ๋ฉด ํ์ฌ cmd ์ ธ์์๋ง ์ ์ฉ๋ฉ๋๋ค. ์ ธ ์ธ๋ถ๋ ๋ค๋ฅธ ์ ธ์ ์๋ ํ๋ก๊ทธ๋จ์๋ ์ํฅ์ ์ฃผ์ง ์์ต๋๋ค. Windows์์ ํ๊ฒฝ ๋ณ์๋ฅผ ์๊ตฌ์ ์ผ๋ก ์ค์ ํ๋ ๋ฐฉ๋ฒ์ Google์์ ์ฐพ์ ์ ์์ต๋๋ค. ํ ์คํธํ๋ ค๋ฉด QT_API๋ฅผ ์ค์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋์ผํ ์์์ ํ์ด์ฌ์ ์ด๊ณ ๊ฐ๋จํ mlab ์์ ๋ฅผ ์คํ ํ์ญ์์ค .
๋ํ Mayavi๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ ์ Python์์ env ๋ณ์๋ฅผ ์ค์ ํ ์ ์์ด์ผ ํฉ๋๋ค. http://stackoverflow.com/questions/5971312/how-to-set-environment-variables-in-python
@dreme : ๋น์ทํ ๋ฌธ์ ๊ฐ ์๋ ์ฌ์ฉ์๊ฐ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ๋์์ด ๋๋์ง ํ์ธํ์ต๋๋ค. https://github.com/menpo/menpo3d/issues/16
README์ ๊ฒฐ๊ณผ ์ง์นจ์ ๋ฐ๋ฅด๊ธฐ๊ฐ ๋ ์ฌ์ธ ์ ์์ต๋๋ค.
https://github.com/menpo/menpo3d#visualizing -3d-objects
์ฃผ์ ๋ถ๋ถ:
Windows๋ฅผ ์คํ ์ค์ด๊ณ ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ๋ค์์ ์๋ํ์ญ์์ค.
```
QT_API=pyqt ์ค์
ETS_TOOLKIT=qt4 ์ค์
````
@jenshnielsen ์ฌ์ฉ์(์ ์ด๋ Menpo์)๊ฐ ๊ทธ๊ฒ์ ๋ํด ๊ฑฑ์ ํ ํ์๊ฐ ์๋๋ก ์๋ํํ๋ ค๊ณ ์๋ํ์ง๋ง ์๋ํ์ง ๋ชปํ์ต๋๋ค. https://github.com/menpo/menpo3d/issues/22
๋๋ ์ฌ๊ธฐ์์ ์ํฉ์ ๊ฐ์ ํ๊ธฐ ์ํด ์๋ํ๊ณ ๋ ผ์ํ๊ธฐ ์ํด ๋ณ๋์ ๋ฌธ์ ๋ฅผ ์ ๊ธฐํ ๊ฒ์ ๋๋ค.
๋ํ Mayavi๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ ์ Python์์ env ๋ณ์๋ฅผ ์ค์ ํ ์ ์์ด์ผ ํฉ๋๋ค. http://stackoverflow.com/questions/5971312/how-to-set-environment-variables-in-python
๋น๊ณ ! ๊ทธ๊ฒ ํธ๋ฆญ์ ํ๋ค. Thx @jenshnielsen =:-)
๋ด ๋ฃจํธ Anaconda ํ๊ฒฝ์์ ์ฌ์ ํ pyqt5 ๊ฐ๋ฐ์ ์ํํ๊ณ ์ถ์ ์ ์์ผ๋ฏ๋ก QT_API
ํ๊ฒฝ ๋ณ์์ ์์คํ
์ ์ฒด OS ์ค์ ์ ์ํํ๋ ๊ฒ๊ณผ ๋น๊ตํ์ฌ ์ด ์คํฌ๋ฆฝํธ ๋ด ์ ๊ทผ ๋ฐฉ์์ ํจ์ฌ ์ ํธํฉ๋๋ค.
๊ทธ๋์, ๋ ๊ฐ์ ๊ฐ๋ํ shmuck์ ๋ํด ์์ฝํ์๋ฉด, Mayavi๋ฅผ aaconda python 3.5์์ ์คํํ๊ธฐ ์ํด ๊ณ ๊ตฐ๋ถํฌํ๊ณ ์์ต๋๋ค. ์ด์ ์ฃผ์์ ์ ์ฉํ ์กฐ์ธ์์ ์ถ์ถํ ์ ์๋ ์ ๊ทผ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
anaconda ๋ฃจํธ ํ๊ฒฝ ํฐ๋ฏธ๋์์ ๋ค์ ๋ช
๋ น์ ์คํํ์ฌ pyqt4๋ก ๋ค์ด๊ทธ๋ ์ด๋๋ ์ ํ๊ฒฝ(oldqt)์ ๋ง๋ญ๋๋ค.
conda create -n oldqt python=3 pyqt=4
์๋ก ์์ฑ๋ ํ๊ฒฝ์ผ๋ก ์ ํํฉ๋๋ค.
activate oldqt
Windows OS์ฉ
source activate oldqt
Mac/Linux OS์ฉ
menpo ํจํค์ง ์ค์น ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ์ฌ mayavi๋ฅผ ์ค์นํฉ๋๋ค.
conda install -c menpo mayavi
oldqt
ํ๊ฒฝ์ ์ฌ์ฉํ์ฌ python mayavi ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๊ณ ์ด ์คํฌ๋ฆฝํธ ์๋จ์ ์๋ ์ค๋ํซ์ ํฌํจํ์ฌ Mayavi์ฉ ์ ํจํ QT API๊ฐ ์ง์ ๋์๋์ง ํ์ธํ์ญ์์ค.
import os
os.environ["QT_API"] = "pyqt"
VTK-7.0.0-cp34-cp34m-win_amd64.whl์ http://www.lfd.uci.edu/~gohlke/pythonlibs/#vtk ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค
์ผ์ฃผ์ผ ์ ์ ์ฌ์ฉํ ์ ์์๊ณ ๋ค์ด๋ก๋ํ์ต๋๋ค. ์์ง ๋ด ์ฌ๋ฌด์ค ์ปดํจํฐ์ ์์ต๋๋ค. ๋งํฌ๋ฅผ ๋ณด๋ด๋๋ฆด ์ ์์ต๋๋ค.
์์์ผ(๋ํ ์ผ์นํ๋ Mayavi ๋ฒ์ ์ ๊ฒฝ์ฐ).
์ต์ Mayavi ๋ฐ VTK๋ฅผ ์ฌ์ฉํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
VTK-7.0.0-cp34-cp34m-win_amd64.whl์ ๋ํ ๋งํฌ๋ฅผ ๋ณด๋ด์ฃผ์ญ์์ค. ๊ฐ์ฌํฉ๋๋ค.
์๋ ๋งํฌ๋ ์ฝ 30์ผ ๋์ ์ ํจํด์ผ ํฉ๋๋ค.
VTK-7.0.0-cp34-cp34m-win_amd64.whl
๊ทธ๋์ ... ๋๋ต ์ด๊ฒ์ ์ด๋์ ์์ต๋๊น? ์ ๋ ์ฒ์๋ถํฐ ์ด๊ฒ์ ์ฃผ์ํด ์์ผ๋ฉฐ ์ด๊ฒ์ ์ผ์ด๋์ง ์๋ ๊ฒ ๊ฐ์ ํ๋ก์ ํธ ์ค ํ๋์ ๋๋ค.
@nevion ์ ๋ฌด์จ ๋ป์ธ๊ฐ์? ์ด๊ฒ์ ๋ซํ ๋ฌธ์ ์ด๋ฉฐ Linux๋ฟ๋ง ์๋๋ผ Windows์ Python 3.6์์ ์์ ํ๋ Mayavi๊ฐ ์์ต๋๋ค.
@mabl ๋ฌธ์ ์ ํ์ ์์ ์ด๊ฒ์ด ์ฌ์ค์ธ์ง ๋ช ํํ์ง ์์ผ๋ฉฐ qt ์ง์ ์ง์ฐ๊ณผ ๊ฐ์ ๊ณผํ ์ํํธ์จ์ด์์ ์ข ์ข ๋ถ๋ถ๋ช ํ ์ํ๋ก ๋จ์ ์์ต๋๋ค. ์ด๊ฒ๊ณผ 2.7๋ง ์ง์ํ๋ ์๋์ฝ๋ค ๋ฐฐํฌํ ์ฌ์ด์์ ๋๋ ์ด๊ฒ์ด ์ฌ์ ํ ์ฌ์ค์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค. ์๋์ฝ๋ค๊ฐ ์ฌ์ ํ 2.7๋ง ์ง์ํ๋ ์ด์ ๋ฅผ ์์ญ๋๊น?
conda install mayavi
Fetching package metadata .........
Solving package specifications: .
UnsatisfiableError: The following specifications were found to be in conflict:
- mayavi -> apptools 4.2.0 -> python 2.7* -> openssl 1.0.1*
- python 3.6*
Use "conda info <package>" to see the dependencies for each package.
Anaconda3๋ฅผ ์ค์นํ๊ณ Mayavi๋ฅผ ์ค์นํ๋ ค๊ณ ํ์ต๋๋ค. ๊ฐ๋ค:
(C:\ProgramData\Anaconda3) C:\Users\nort.ARP>conda install mayavi
ํจํค์ง ๋ฉํ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ ...........
ํจํค์ง ์ฌ์ ํด๊ฒฐ: .UnsatisfiableError: ๋ค์ ์ฌ์์ด ์ถฉ๋ํ๋ ๊ฒ์ผ๋ก ํ์ธ๋์์ต๋๋ค.
- ๋ง์ผ๋น -> apptools 4.2.0 -> ํ์ด์ฌ 2.7*
- ํ์ด์ฌ 3.6*
"์ฝ๋ค ์ ๋ณด ์ฌ์ฉ"๋ฅผ ํด๋ฆญํ์ฌ ๊ฐ ํจํค์ง์ ์ข ์์ฑ์ ํ์ธํฉ๋๋ค.
@dreme ์์ ์์ 4๊ฐ์ง ์ง์นจ์ ๋ณด๊ฑฐ๋ ์๋ํ์ต๋๊น?
ํนํ @dreme์์
anaconda ๋ฃจํธ ํ๊ฒฝ ํฐ๋ฏธ๋์์ ๋ค์ ๋ช ๋ น์ ์คํํ์ฌ pyqt4๋ก ๋ค์ด๊ทธ๋ ์ด๋๋ ์ ํ๊ฒฝ(oldqt)์ ๋ง๋ญ๋๋ค.
conda create -n oldqt python=3.5 pyqt=4
์๋ก ์์ฑ๋ ํ๊ฒฝ์ผ๋ก ์ ํํฉ๋๋ค.
activate oldqt #for Windows OS
source activate #oldqt for Mac/linux OS
menpo ํจํค์ง ์ค์น ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ์ฌ mayavi๋ฅผ ์ค์นํฉ๋๋ค.
conda install -c menpo mayavi
oldqt ํ๊ฒฝ์ ์ฌ์ฉํ์ฌ python mayavi ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๊ณ ์ด ์คํฌ๋ฆฝํธ์ ๋งจ ์์ ์๋ ์ค๋ํซ์ ํฌํจํ์ฌ mayavi์ ๋ํ ์ ํจํ QT API๊ฐ ์ง์ ๋์๋์ง ํ์ธํฉ๋๋ค.
import os
os.environ["QT_API"] = "pyqt"
@jonathanrocher ์๋์, ์ถฉ๋ถํ ๊ณต์ ํฉ๋๋ค. ๋๋ ์ด๊ฒ์ด ํด๊ฒฐ๋์๊ณ ๋ฐฉ๊ธ ์๋ํ๋ค๋ ์ฃผ์ฅ์ ์๋ชป ์ฝ์์ ๊ฒ์ ๋๋ค. ์, ๋ ์ํผ์ ๋ฐ๋ผ ์ค์น๋์์ต๋๋ค.
๋ฐฉ๊ธ @dreme 4 ํฌ์ธํธ ์ง์นจ์ ์๋ํ์ง๋ง python 3.6์์ ์คํจํ์ต๋๋ค. ๋๋ 3.5๋ฅผ ๊ฐ์ ํด์ผํ๋ค.
conda create -n oldqt python=3.5 pyqt=4
๊ทธ๋ฆฌ๊ณ ํจ๊ณผ๊ฐ ์์์ต๋๋ค.
๋ค ๋ง์ต๋๋ค. Mayavi 4.5์๋ QT4๋ก ์ธํด Python 3.5๊ฐ ํ์ํฉ๋๋ค.
๋ด๊ฐ ์ป์ ์ ์๋๋ก mayavi
์๋ฅผ ๋ค์ด, ์ฌ์ฉ Qt5์ ํ์ด์ฌ 3.6 + VTK7.1 ์์
conda install python=3.6.1 vtk>=7 -c clinicalgraphics
ํ๊ณ ์ฌ์ฉํ์ฌ ์ต๊ทผ์์์์ ์ ์ปค๋ฐ pyface
, traits
, ๋ฐ traitsui
. ์ด๊ฒ์ ์ฐ๋ฆฌ CI์ ๋ฐ๋ผ OSX, Windows ๋ฐ Linux์์ ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๊ทธ๋ฌ๋ HiDPI๋ฅผ ์ง์ํ๋ OSX ์์คํ ์์๋ ํ๋ฉด ์์ญ์ 1/4๋ง ์ฌ์ฉ๋ฉ๋๋ค.
์ด๊ฒ์ Mayavi ์์ค์์ ๊ณ ์น ์ ์๋ ๊ฒ์ ๋๊น?
VTK7.1์ ์ผ๋ถ์ธ ๊ฒ ๊ฐ์ต๋๋ค.
https://public.kitware.com/pipermail/vtk-developers/2016-November/034456.html
๊ทธ๋ฌ๋ ๋ ๊น์ด ์ดํด๋ณด๊ธฐ ์ ์ ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ ์์ด๋์ด๊ฐ ์๋์ง ๋ฌผ์ด๋ณผ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค.
ํ ๊ฐ์ง ์ต์ (์ฌํ์ง๋ง ์ฐฝ์ ์ฑ์ธ ์ ์์)์ VTK8์ด ๋์ฌ ๋๊น์ง ๊ธฐ๋ค๋ฆฐ ๋ค์ HiDPI๋ฅผ ๋๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ QVTKOpenGLWidget์ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค.
https://www.vtk.org/doc/nightly/html/classQVTKOpenGLWidget.html#details
๋๋ ์ด ์์ ฏ์ ์ฌ์ฉํ ๋ HiDPI๊ฐ "๊ทธ๋ฅ ์๋"ํ ์๋ ์์ต๋๋ค.
์ฌ๊ธฐ์ ๋์ด๋ ํ๊ฒฝ ๋ณ์๋ฅผ ์๋ํ์ง๋ง ์์ ํ์ง ์์ต๋๋ค.
์๋ ํ์ธ์ @larsoner๋ , ์ด์ vtk 8.1์ ์ฌ์ฉํ ์ ์๋ค๋ ์์์ด ์์ต๋๊น?
vtk 8.1.0 conda install -c conda-forge vtk
ํ๋ฉด python์ด 3.6.2๋ก ๋ค์ด๊ทธ๋ ์ด๋๋ฉ๋๋ค(๊ทธ๋ฆฌ๊ณ matplotlib๋ 2.1.0์ผ๋ก).
๋๋ pyface 5.1.0, traits 4.6.0, traitsui 5.1.0, conda install -c conda-forge pyface traits traitsui
qt 5.6.2๊ฐ ์์ต๋๋ค.
conda-forge conda install -c conda-forge mayavi
์์ mayavi 4.5.0์ ์ค์นํ๋ฉด pyqt 4.*
, python 3.6*
๋ฐ vtk 7.1.*
์ข
์์ฑ์ ๋ํด ๋ถํํฉ๋๋ค.
ํ์ฌ ํจํค์ง์ ํจ๊ป ์๋ํ๋๋ก ํ๊ฑฐ๋ Python3.6, Qt5 ๋ฐ VTK7.1์์ ์ ํํ ์ด๋ป๊ฒ ์๋ํ๊ฒ ํ๋์ง์ ๋ํ ์ ์์ด ์์ต๋๊น? ๊ฐ์ฌ (์ ์ง Python3.5 + QT4์ ๋ํ @dreme์ ์ํ ํด๊ฒฐ์ฑ ์ด์๋ค).
์ฐ๋ฆฌ๋ Linux, OSX ๋ฐ Windows์์ ์ฝ 6๊ฐ์ ๋์ CI์ฉ์ผ๋ก ์ด ํ๊ฒฝ ํ์ผ์ ์ฑ๊ณต์ ์ผ๋ก ์ฌ์ฉํด ์์ต๋๋ค(HiDPI ์ ์ธ):
https://github.com/mne-tools/mne-python/blob/master/environment.yml
๊ทธ๊ฒ์ ๋น์ ์ด ํ์ํ์ง ์์ ๋ง์ ๊ฒ๋ค์ ๊ฐ์ง๊ณ ์์ต๋๋ค. Mayavi์ ์ค์ํ ๊ตฌ์ฑ ์์๋ 3.6
๋ฒ์ ์ด ์๊ณ pyface
, traits
๋ฐ traitsui
์ผ๋ถ ์ปค๋ฐ์ ๊ณ ์ ๋์ด ์๊ธฐ ๋๋ฌธ์ clinicalgraphics
์์ VTK7์ ๊ฐ์ ธ์์ต๋๋ค traitsui
๋ฆด๋ฆฌ์ค๋ฅผ ์ฌ์ฉํ๋ ๋์ GitHub์์
VTK8์ conda-forge์์ ์ฌ์ฉํ ์ ์๋ค๋ฉด ์์ ํ๊ฒ ๊ต์ฒดํ ์ ์์ง๋ง ์์ง ์๋ํ์ง๋ ์์์ต๋๋ค. ์ธ์ ๊ฐ ํ ๋ฒ ์๋ํด ๋ณด๊ณ HiDPI ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋๋์ง ํ์ธํ๊ฒ ์ต๋๋ค. ๋น์ ์ด ๋๋ฅผ ๋๋ฆฌ๋ฉด ์ด๋ป๊ฒ ๋๋์ง ์๋ ค์ฃผ์ธ์!
@larsoner , @mpanighel -- ์ด๊ฒ์ VTK 7.x์ ๋ฌธ์ ์ด๋ฉฐ(์ฐฝ ํฌ๊ธฐ๊ฐ 4๋ถ์ 1์ ๋ถ๊ณผํจ) VTK 8.x์์ ์ ์๋ํฉ๋๋ค. ๋ฉฐ์น ์์ VTK๋ฅผ ๋ ์ฝ๊ฒ ์ค์นํ ์ ์๋ ๋ฐฉ๋ฒ์ ๊ณ์ ์ง์ผ๋ด ์ฃผ์ญ์์ค.
์ฐธ๊ณ ๋ก, ์ ๋ PyPI์์ VTK 8.1.0์ ๋ํ ํ ์ ํธ์ํ์ต๋๋ค. ์ฌ๊ธฐ๋ฅผ ์ฐธ์กฐํ์ญ์์ค. http://prabhuramachandran.blogspot.in/2018/01/vtk-810-wheels-for-all-platforms-on-pypi.html
๋ฉ์ง๋ค @prabhuramachandran !
๋ฉ์ง๋ค์ @prabhuramachandran ! ๊ฐ์ฌ ํด์!
์์ฆ ๋๋ ๋น์ ์ ์ต์ ์์ ์ฌํญ์ ๋ฐ๋ฅด๊ณ Linux์ python3.6/pyqt5์์ ์ค์ ์ ์ฌํํ๊ณ mayavi๋ฅผ ํ ์คํธํ๋ ค๊ณ ์๋ํ์ง๋ง ์ด์ด ์์์ต๋๋ค. https://github.com/enthought/mayavi/issues/595 ์ ๋ ๋ง์ ์ ๋ณด๋ฅผ ๊ฒ์ํ์ฌ ๋ ๊น๋ํ๊ฒ ์ ๋ฆฌํ ์๊ฐ์ ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋น๊ณ ! ๊ทธ๊ฒ ํธ๋ฆญ์ ํ๋ค. Thx @jenshnielsen =:-)
๋ด ๋ฃจํธ Anaconda ํ๊ฒฝ์์ ์ฌ์ ํ pyqt5 ๊ฐ๋ฐ์ ์ํํ๊ณ ์ถ์ ์ ์์ผ๋ฏ๋ก
QT_API
ํ๊ฒฝ ๋ณ์์ ์์คํ ์ ์ฒด OS ์ค์ ์ ์ํํ๋ ๊ฒ๊ณผ ๋น๊ตํ์ฌ ์ด ์คํฌ๋ฆฝํธ ๋ด ์ ๊ทผ ๋ฐฉ์์ ํจ์ฌ ์ ํธํฉ๋๋ค.๊ทธ๋์, ๋ ๊ฐ์ ๊ฐ๋ํ shmuck์ ๋ํด ์์ฝํ์๋ฉด, Mayavi๋ฅผ aaconda python 3.5์์ ์คํํ๊ธฐ ์ํด ๊ณ ๊ตฐ๋ถํฌํ๊ณ ์์ต๋๋ค. ์ด์ ์ฃผ์์ ์ ์ฉํ ์กฐ์ธ์์ ์ถ์ถํ ์ ์๋ ์ ๊ทผ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
anaconda ๋ฃจํธ ํ๊ฒฝ ํฐ๋ฏธ๋์์ ๋ค์ ๋ช ๋ น์ ์คํํ์ฌ pyqt4๋ก ๋ค์ด๊ทธ๋ ์ด๋๋ ์ ํ๊ฒฝ(oldqt)์ ๋ง๋ญ๋๋ค.
conda create -n oldqt python=3 pyqt=4
์๋ก ์์ฑ๋ ํ๊ฒฝ์ผ๋ก ์ ํํฉ๋๋ค.
activate oldqt
Windows OS์ฉsource activate oldqt
Mac/Linux OS์ฉmenpo ํจํค์ง ์ค์น ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ์ฌ mayavi๋ฅผ ์ค์นํฉ๋๋ค.
conda install -c menpo mayavi
oldqt
ํ๊ฒฝ์ ์ฌ์ฉํ์ฌ python mayavi ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๊ณ ์ด ์คํฌ๋ฆฝํธ ์๋จ์ ์๋ ์ค๋ํซ์ ํฌํจํ์ฌ Mayavi์ฉ ์ ํจํ QT API๊ฐ ์ง์ ๋์๋์ง ํ์ธํ์ญ์์ค.