๋ฌธ์์์๋ ๋ช ์์ ์ผ๋ก ์ธ๊ธํ์ง ์์ง๋ง 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
(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์์ ํ ๋ก ์ ๋ณผ ์๋ ์์ต๋๋ค.