Mayavi: Mayavi ์„ค์น˜ ๋ฌธ์ œ

์— ๋งŒ๋“  2018๋…„ 05์›” 07์ผ  ยท  9์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: enthought/mayavi

Mayavi2์€ TRULY ๋ฉ‹์ง„ ๊ธฐ๋Šฅ์˜ ์ธก๋ฉด์—์„œ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค ... ๋‚ด๊ฐ€ ์„ค์น˜ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๋•Œ๋งˆ๋‹ค ํฐ ๋ฌธ์ œ๊ฐ€ mayavi ์— ubuntu ๋‚ด๋ถ€ virtualenv ๋˜๋Š” ์ฝ”์–ด ์‹œ์Šคํ…œ์— ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  vtk ๋“ฑ์˜ ์ข…์†์„ฑ์ด ์ฝ”์–ด์— ์„ค์น˜๋œ ํ›„์—๋„ ๊นจ๋—ํ•œ 'pip' ์„ค์น˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์ข…์†์„ฑ๊ณผ ์˜ต์…˜์ด ๋„ˆ๋ฌด ๋งŽ๊ณ  ๋‹ค์–‘ํ•ฉ๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๋งŽ์€ ํŒจํ‚ค์ง€๊ฐ€ ์ž๋™์œผ๋กœ ์‹๋ณ„๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ˆ˜๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ๋ณด์•˜๊ณ  ๋งค๋ฒˆ ์˜จ๋ผ์ธ์—์„œ ์†”๋ฃจ์…˜์„ ์ฐพ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋ญ”๊ฐ€ ์ž˜๋ชปํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ผ ์ˆ˜๋„ ์žˆ์ง€๋งŒ... ํ•ญ์ƒ ๊ทธ๋žฌ์Šต๋‹ˆ๋‹ค. mayavi ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฑ์—”๋“œ ์˜ต์…˜์„ ๋ช‡ ๊ฐœ๋งŒ ์ œํ•œํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ์ƒ๊ฐํ•ด์•ผ ํ•˜์ง€๋งŒ ๋ชจ๋‘ ์ •๋ง ๊น”๋”ํ•˜๊ฒŒ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๊ณ  ๋ฌธ์ œ ์—†์ด ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ ์ง€๊ธˆ๊นŒ์ง€ ์„ค์น˜ํ•  ์ˆ˜์žˆ์„ ๊ฒƒ์ธ๊ฐ€ mayavi ๋‹จ์ˆœํ•œ ๋ช…๋ น์œผ๋กœ pip install mayavi ์ž‘์—… ์•„์›ƒ - ์˜ค๋ธŒ - ๋ฐ•์Šค ์™„์ „ํžˆ ์ค€๋น„๊ฐ€ ์˜ค๋ฅ˜์—†์ด? ์†Œ์œ ์ž ๊ฐœ๋ฐœ์— ๋„์›€์ด ๋˜์—ˆ์œผ๋ฉด ํ•ฉ๋‹ˆ๋‹ค. vtk ๋“ฑ์˜ ์ข…์†์„ฑ์„ ์ดํ•ดํ•˜์ง€๋งŒ ์ด์ œ pip ํ†ตํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

pip ๋‹จ์ผ ์„ค์น˜ ํ›„ ๋ชจ๋“  ์˜ต์…˜์€ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ๊ฐ„๋‹จํ•˜๊ฒŒ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด mesa ๋˜๋Š” xvfb . ํ•œ ๋ฒˆ์˜ ์„ค์น˜๋กœ ๋ชจ๋“  ์ž‘์—…์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ์€ ๊ฐ„๋‹จํ•œ .mayavi ์‹œ์ž‘ ํŒŒ์ผ์ด๋‚˜ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ์ œ์–ดํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ๊ฐ์˜ ํŠธ๋ฆฌ ์•„๋ž˜์— ๋‹ค๋ฅด๊ฒŒ ์ปดํŒŒ์ผ๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋ณต์‚ฌ๋ณธ์ด ์—ฌ๋Ÿฌ ๊ฐœ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

mayavi ๋Š” ๋งค์šฐ ๋ฌด๊ฑฐ์šด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€๋งŒ ์ง„์ •ํ•œ ์˜๊ด‘์€ ๋งค์šฐ ์‰ฌ์šด ์„ค์น˜์—์„œ ํ›จ์”ฌ ๋” ํด ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์œ ์ผํ•œ ์˜ต์…˜์€ ์•„๋‹ˆ์ง€๋งŒ pip ๊ฐ€ ์ด ์ž‘์—…์„ ์™„๋ฒฝํ•˜๊ณ  ์™„๋ฒฝํ•˜๊ฒŒ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ดํ•ดํ•˜์ง€๋งŒ ๋ชจ๋“  ๋‹ค๋ฅธ Python ๋ฐฐํฌํŒ๊ณผ ํ•จ๊ป˜ ์„ธ ๊ฐ€์ง€ ์ฃผ์š” ํ”Œ๋žซํผ(Python 3.x)์—์„œ ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ์ถฉ๋ถ„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

pip install vtk traits traitsui pyface envisage apptools pyqt5
git clone https://github.com/enthought/mayavi.git
cd mayavi
python setup.py install

๋ฉฐ์น  ๋‚ด๋กœ ์ƒˆ ๋ฆด๋ฆฌ์Šค๋ฅผ ํ‘ธ์‹œํ•˜๊ณ  pip install mayavi ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋ชจ๋“  9 ๋Œ“๊ธ€

์˜ˆ๋ฅผ ๋“ค์–ด ์ƒˆ๋กœ ์„ค์น˜ํ•˜๋ฉด ์ด ์˜ค๋ฅ˜๊ฐ€ ์—ฌ๋Ÿฌ ๋ฒˆ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
QVariantMap DBusMenuExporterDBus::getProperties(int, const QStringList&) const: Condition failed: action

@Kekushke -- ์ €๋Š” ์ด ์ž‘์—…์„ ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ VTK ํœ ์„ PyPI๋กœ ๋ฐ€์–ด๋„ฃ์€ ์‚ฌ๋žŒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ ์˜ค๋ฅ˜๋Š” Mayavi์˜ ๋งˆ์ง€๋ง‰ ๋ฆด๋ฆฌ์Šค ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋ฆด๋ฆฌ์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ์‹œ๊ฐ„์ด ํ•„์š”ํ•˜๋ฏ€๋กœ pip install์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„, ์ด๋ฒˆ โ€‹โ€‹์ฃผ๋ง์— ๋ฌธ์ œ๊ฐ€ ์žˆ์–ด์„œ ์ปดํ“จํ„ฐ๋ฅผ ๋ฉ€๋ฆฌํ•˜๊ณ  ๋‚˜๋จธ์ง€ ์ฃผ ๋™์•ˆ ํ•™๊ธฐ๋ฅผ ๋๋‚ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ์ฃผ๋ง์ด๋‚˜ ๋‹ค์Œ ์ฃผ์— ๋งˆ์•ผ๋น„๋ฅผ ์ถœ์‹œํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ž์ง€๋งŒ, ๊ธฐ๋ถ„์ด ์ข‹์•„์ง€๊ณ  ์‹œ๊ฐ„์„ ๋‚ผ ์ˆ˜ ์žˆ์„ ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผ ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์ฃผ๋ง์ฏค์—๋Š” ๋ฐœ๋งค๊ฐ€ ๋˜์—ˆ์œผ๋ฉด ํ•˜๋Š” ๋ฐ”๋žจ์ž…๋‹ˆ๋‹ค.

@prabhuramachandran ๊ท€ํ•˜์˜ ์˜๊ฒฌ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋นจ๋ฆฌ ๋‚˜์•„์ง€ ๊ธธ ๋ฐ”๋ž˜. ์ „ํ˜€ ์„œ๋‘๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹จ์ง€ ์‚ฌ์šฉ์ž์˜ ๊ด€์ ๊ณผ ๊ฒฝํ—˜์„ ์ง€์ ํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ •๋ง ๋ฉ‹์ง„ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์ด ํ–ฅ์ƒ๋จ์— ๋”ฐ๋ผ ์ด ๋„๊ตฌ๋Š” ์•ž์œผ๋กœ 10๋…„, 25๋…„ ๋ฐ ๊ทธ ์ดํ›„์— ๊ณ„์† ์‚ฌ์šฉ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค!

mayavi ๋งŽ์€ ์ผ์„ ํ•  ์ˆ˜ ์žˆ๊ณ  ์ˆ˜๋งŽ์€ ์˜ต์…˜์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ๋†€๋ž์Šต๋‹ˆ๋‹ค... ๊ทธ๋ฆฌ๊ณ  ํ›„์ž๋Š” ๋„ˆ๋ฌด ๋งŽ์€ ๋ณต์žก์„ฑ์„ ์ถ”๊ฐ€ํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ์ผ์„ ๋‹จ์ˆœํ™”ํ•˜์—ฌ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งค์šฐ ๊ฐ„๋‹จํ•œ ์„ค์น˜ ํ”„๋กœ์„ธ์Šค๋กœ ์ด๋Ÿฌํ•œ ์˜ต์…˜์„ ์„ ํƒํ•˜์‹ญ์‹œ์˜ค. mayavi ๋ชจ๋“  ๊ฒƒ์ด ์ž‘๋™ํ•˜์ง€๋งŒ ์‚ฌ์šฉ์ž๋Š” ๊ทธ๋ƒฅ ์‹ธ์›Œ์•ผ ํ•˜๊ณ ... ๊ทธ๋Ÿฌ๋ฉด ์‚ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์„œ/์ž์Šต์„œ๋ฅผ ํ…Œ์ŠคํŠธ/์ž‘์„ฑํ•˜๊ณ  ์›ํ•˜๋Š” ๊ฒฝ์šฐ ์ž‘์—…์„ ๋‹จ์ˆœํ™”ํ•˜๋„๋ก ๊ธฐ๊บผ์ด ๋„์™€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‹ค์‹œ ํ•œ ๋ฒˆ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

@Kekushke -- ์ €๋ฅผ ๊ต์ˆ˜๋ผ๊ณ  ๋ถ€๋ฅด์ง€ ๋งˆ์„ธ์š”. ์ €๋Š” ๋‹น์‹ ์˜ ๊ณ ํ†ต์„ ์ดํ•ดํ•˜๊ณ  ์„ค์น˜๋ฅผ ์กฐ๊ธˆ ๋” ์‰ฝ๊ฒŒ ํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ข‹์€ ๋ง์”€๊ณผ ๊ฒฉ๋ ค ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋˜ํ•œ ๋‚ด๊ฐ€ ์œ ์ง€ํ•˜๊ณ  ์žˆ๋Š” ๋‹ค๋ฅธ ๋„๊ตฌ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ  ์•„๋งˆ๋„ ๋‚ด๊ฐ€ ์”น์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๋งŽ์ด ๋ฌผ๋ ธ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค! ์–ด๋–ค ๋„์›€์ด๋“  ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด Mayavi ๋ฆด๋ฆฌ์Šค๋ฅผ ํ‘ธ์‹œํ•˜๋ฉด Mayavi๊ฐ€ ์™„์ „ํžˆ pip ์„ค์น˜ ๊ฐ€๋Šฅํ•˜์—ฌ ๋กœ๋“œ์— ๋„์›€์ด ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๊ฐ€์˜ค๋Š” ์ฃผ๋ง๊นŒ์ง€ ๋ฐ”๋ž๋‹ˆ๋‹ค.

@prabhuramachandran ๋ฌธ์ œ ์—†์Šต๋‹ˆ๋‹ค! mayavi ์˜ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ๋ณด๋‹ˆ ์ž‘์„ฑ์ž๋ถ„์ด์‹œ๊ตฐ์š”! ์ •๋ง ๋Œ€๋‹จํ•ด! ๋‹ค์‹œ ํ•œ ๋ฒˆ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! :-)

@prabhuramachandran Mayavi๋Š” ๊ต‰์žฅํ•ฉ๋‹ˆ๋‹ค! ์ €๋Š” ์ผ๋ถ€ ์–‘์ž ์—ญํ•™ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ ์• ๋‹ˆ๋ฉ”์ด์…˜์œผ๋กœ ๋งŒ๋“ค๋ ค๊ณ  ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์ด๊ฒƒ์ด ์ œ๊ฐ€ ์›ํ•˜๋Š” ๊ฒƒ์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์œ ์ผํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ข…์†์„ฑ ํŠธ๋ฆฌ๊ฐ€ ์™œ ์•…๋ชฝ ๊ฐ™์€์ง€ ๋ฌป๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ํ•˜๋ฃจ ๋ฐ˜ ๋™์•ˆ ์ƒˆ MacBook Pro์—์„œ ์ž‘๋™์‹œํ‚ค๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ์œผ๋ฉฐ ์ผ๋ จ์˜ ์˜ค๋ฅ˜๋Š” ๋ฏฟ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๊ฐ€ ๋ช‡ ๋…„ ๋™์•ˆ ์กด์žฌํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋„์›€์ด ๋˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ฏ€๋กœ ๊ณ„์† ์ตœ์‹  ์กฐ์–ธ์„ ์ฐพ์ง€๋งŒ ์†”์งํžˆ ์ด๊ฒƒ์€ ์ง€์† ๊ฐ€๋Šฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ดํ•ดํ•˜์ง€๋งŒ ๋ชจ๋“  ๋‹ค๋ฅธ Python ๋ฐฐํฌํŒ๊ณผ ํ•จ๊ป˜ ์„ธ ๊ฐ€์ง€ ์ฃผ์š” ํ”Œ๋žซํผ(Python 3.x)์—์„œ ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ์ถฉ๋ถ„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

pip install vtk traits traitsui pyface envisage apptools pyqt5
git clone https://github.com/enthought/mayavi.git
cd mayavi
python setup.py install

๋ฉฐ์น  ๋‚ด๋กœ ์ƒˆ ๋ฆด๋ฆฌ์Šค๋ฅผ ํ‘ธ์‹œํ•˜๊ณ  pip install mayavi ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค! ์ด ๋ช…ํ™•ํ•œ ์ง€์นจ์„ README์— ๋„ฃ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ์ด์ œ ํ•ด๊ฒฐ๋˜์—ˆ์œผ๋ฏ€๋กœ ๋‹ซ๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋‹ค๋ ค ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰