Mayavi: IPython ๋ฐ Qt๊ฐ€ ์žˆ๋Š” Mayavi

์— ๋งŒ๋“  2014๋…„ 04์›” 12์ผ  ยท  7์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: enthought/mayavi

๋ฌธ์„œ์—์„œ๋Š” ๋ช…์‹œ์ ์œผ๋กœ ์–ธ๊ธ‰ํ•˜์ง€ ์•Š์ง€๋งŒ qt๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ IPython(v. 2.0.0)์—์„œ Mayavi๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค... ํ•˜์ง€๋งŒ

$ ETS_TOOLKIT=qt4 ipython2 --gui=qt4 -c 'from mayavi import mlab'
<...>
/usr/lib/python2.7/site-packages/pyface/qt/__init__.py in prepare_pyqt4()
     15     # Set PySide compatible APIs.
     16     import sip
---> 17     sip.setapi('QString', 2)
     18     sip.setapi('QVariant', 2)
     19 

ValueError: API 'QString' has already been set to version 1

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

(1) pyside๋ฅผ ์„ค์น˜ํ•˜๊ณ  (2) PyQt๋ฅผ ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ QT_API=pyside ๋„ ์„ค์ •ํ•˜๋ฉด ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

์•„๋‹ˆ์š”! ipython์ด qt ์ด๋ฒคํŠธ ๋ฃจํ”„๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— sip์„ API #2๋กœ ์„ค์ •ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค(์ผ๋ฐ˜์ ์œผ๋กœ matplotlib๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ). ํ™˜๊ฒฝ ๋ณ€์ˆ˜, ๋ช…๋ น์ค„ ์ธ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋˜ํ•œ spyder์™€ ๊ฐ™์€ IDE๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค: http://ipython.readthedocs.org/en/stable/interactive/reference.html#pyqt -and-pyside

์‹ค์ œ๋กœ ๋ฒ„๊ทธ์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ์‹ค์ œ๋กœ ์˜์‚ฌ ์†Œํ†ต์ด ๊ฐ€๋Šฅํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ ์–ด๋„ "๋ฌธ์„œ์— ์˜ํ•œ ์ˆ˜์ •" ๋˜๋Š” "์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์— ์˜ํ•œ ์ˆ˜์ •"์ž…๋‹ˆ๋‹ค.

IMHO, ์ด๊ฒƒ์€ ๋ฒ„๊ทธ๊ฐ€ ์•„๋‹ˆ์ง€๋งŒ ์ด ipython ๋ฌธ์„œ ๋งํฌ๋ฅผ mayavi ๋ฌธ์„œ์— ์ถ”๊ฐ€ํ•˜๊ณ  --gui=qt ํ”Œ๋ž˜๊ทธ๊ฐ€ PySide/PyQt ๋ฐฑ์—”๋“œ์— ์˜์กดํ•œ๋‹ค๊ณ  ์–ธ๊ธ‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์ ์–ด๋„ ์—ฌ๊ธฐ: http://docs.enthought.com/ mayavi/mayavi/mlab.html ๋ฐ ๋ช‡ ๊ฐ€์ง€ ๋‹ค๋ฅธ ์žฅ์†Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค)

์ด์ œ ์ด ๋ฌธ์ œ๋Š” ๋‹ซํ˜”์ง€๋งŒ ํ•ด๊ฒฐ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋ฏ€๋กœ ์ƒˆ ๋ฌธ์ œ๋ฅผ ์—ด๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์—ฌ๊ธฐ( ETS_TOOLKIT ๋ฐ QT_API )์™€ ์ œ๊ณต๋œ ๋งํฌ์—์„œ ์ฝ์€ ๋ชจ๋“  ๊ฒƒ์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์˜ค๋ฅ˜๊ฐ€ ๊ณ„์†๋ฉ๋‹ˆ๋‹ค.
์ €๋Š” mayavi 4.5.0 py27_0 ์™€ ํ•จ๊ป˜ python 2.7.12 ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋‘ conda ๋ฅผ ํ†ตํ•ด ์„ค์น˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ipython ๋ฐ jupyter notebook ์—์„œ๋„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋™์ผํ•œ ๋ฉ”์‹œ์ง€( API 'QString' has already been set to version 1 )๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
๋‚˜๋Š” ์ด๊ฒƒ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‚ด๊ฐ€ ๋ฌด์—‡์„ ๋†“์น˜๊ณ  ์žˆ๋Š”์ง€ ์ •๋ง๋กœ ๋ชจ๋ฅธ๋‹ค.

@victortxa -- #532์—์„œ ํ† ๋ก ์„ ๋ณผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

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