Windows 7์์ Python 3์ฉ kivy๋ฅผ ์คํํ๋ ค๊ณ ํ๋๋ฐ ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
Open GL์ 1.1๋ก ๊ฐ์ง๋์์ผ๋ฉฐ ์ค์ ๋ก OpenGL ๋ทฐ์ด๋ฅผ ์ฌ์ฉํ๋ฉด 3.1์
๋๋ค.
์ด ๋ฌธ์ ๋ kivy for python 2.7 for windows ๋๋ kivy for python 3 for ubuntu์์ ์ฐพ์ ์ ์์ต๋๋ค.
from kivy.app import App
from kivy.uix.button import Button
class TestApp(App):
def build(self):
return Button(text='Hello World')
TestApp().run()
์ฝ๋์ ์ฒซ ๋ฒ์งธ ์ค ์์ ์ด๊ฒ์ ์ถ๊ฐํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น์?
from kivy import Config
Config.set('graphics', 'multisamples', '0')
์๋ฌด ์ผ๋ํ์ง.
(์๊ณ) D:anaconda projectclock>Scriptspython main.py
[INFO ] [Logger ] C:UsersYen.kivylogskivy_17-06-29_9.txt์ ๋ก๊ทธ์ธ ๊ธฐ๋ก
[์ ๋ณด] [ํค๋น] v1.10.1.dev0, git-a4116a5, 20170507
[์ ๋ณด] [ํ์ด์ฌ] v3.6.1 |์๋์ฝ๋ค 4.4.0(64๋นํธ)| (๊ธฐ๋ณธ๊ฐ, 2017๋
5์ 11์ผ 13:25:24) [MSC v.1900 64๋นํธ(AMD64)]
[์ ๋ณด] [๊ณต์ฅ] 194๊ฐ์ ๊ธฐํธ๊ฐ ๋ก๋๋จ
[์ ๋ณด] [์ด๋ฏธ์ง] ๊ณต๊ธ์: img_tex, img_dds, img_sdl2, img_pil, img_gif (img_ffpyplayer ๋ฌด์)
[์ ๋ณด] [OSC] ์ฌ์ฉ
[์ ๋ณด] [์ฐฝ] ๊ณต๊ธ์: sdl2
[INFO ] [GL ] "OpenGL" ๊ทธ๋ํฝ ์์คํ
์ฌ์ฉ
[INFO ] [GL ] GLEW ์ด๊ธฐํ ์ฑ๊ณต
[INFO ] [GL ] ํ๋ ์ ๋ฒํผ ํ์ฅ์ด ์ง์๋์ง ์์ต๋๋ค.
[INFO ] [GL ] ๋ฐฑ์๋ ์ฌ์ฉ
[์ ๋ณด] [GL] OpenGL ๋ฒ์ [์ ๋ณด] [GL] OpenGL ๊ณต๊ธ์
์ฒด [์ ๋ณด] [GL] OpenGL ๋ ๋๋ฌ
[INFO ] [GL ] OpenGL ๊ตฌ๋ฌธ ๋ถ์ ๋ฒ์ : 1, 1
[์ค์] [GL ] ์ต์ ํ์ OpenGL ๋ฒ์ (2.0)์ ์ฐพ์ ์ ์์ต๋๋ค!
๊ฐ์ง๋ OpenGL ๋ฒ์ : 1.1
๋ฒ์ : b'1.1.0'
๊ณต๊ธ์
์ฒด: b'Microsoft Corporation'
๋ ๋๋ฌ: b'GDI ์ผ๋ฐ'
๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ๊ทธ๋ํฝ ๋๋ผ์ด๋ฒ ๋ฐ/๋๋ ๊ทธ๋ํฝ ํ๋์จ์ด๋ฅผ ์ ๊ทธ๋ ์ด๋ํด ๋ณด์ญ์์ค.
์ด์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ข ๋ฃ๋ฉ๋๋ค.
๋ฐฉ๊ธ python 3.6์ด ์ค์น๋ Windows 7 32๋นํธ์์ ์๋ํ์ต๋๋ค. ์ผํ๋ค
์, ์๋์ฝ๋ค. ํญ์ Kivy์ ํจ๊ป ์๋ํ์ง ์๋ Python ๋ฐฐํฌํ์ ๋ํด ๋ช ๊ฐ์ง ๋ฌธ์ ๊ฐ ์ด๋ ค ์์ต๋๋ค.
๋ฐฉ๊ธ python 3.6์ ์๋ก ์ค์นํ๋๋ฐ ๋ฌธ์ ๊ฐ ์ฌ์ ํ ๋จ์ ์์ต๋๋ค.
(hello) D:anaconda projecthello>Scriptspython main.py
[INFO ] [Logger ] C:UsersYen.kivylogskivy_17-06-29_10.txt์ ๋ก๊ทธ์ธ ๊ธฐ๋ก
[์ ๋ณด] [ํค๋น] v1.10.0
[์ ๋ณด] [ํ์ด์ฌ] v3.6.1 (v3.6.1:69c0db5, 2017๋
3์ 21์ผ, 17:54:52) [MSC v.1900 32๋นํธ(์ธํ
)]
[์ ๋ณด] [๊ณต์ฅ] 194๊ฐ์ ๊ธฐํธ๊ฐ ๋ก๋๋จ
[์ ๋ณด] [์ด๋ฏธ์ง] ๊ณต๊ธ์: img_tex, img_dds, img_sdl2, img_gif (img_pil, img_ffpyplayer ๋ฌด์)
[์ ๋ณด] [ํ
์คํธ] ๊ณต๊ธ์: sdl2
[์ ๋ณด] [OSC] ์ฌ์ฉ
[์ ๋ณด] [์ฐฝ] ๊ณต๊ธ์: sdl2
[INFO ] [GL ] "OpenGL" ๊ทธ๋ํฝ ์์คํ
์ฌ์ฉ
[INFO ] [GL ] GLEW ์ด๊ธฐํ ์ฑ๊ณต
[INFO ] [GL ] ํ๋ ์ ๋ฒํผ ํ์ฅ์ด ์ง์๋์ง ์์ต๋๋ค.
[INFO ] [GL ] ๋ฐฑ์๋ ์ฌ์ฉ
[์ ๋ณด] [GL] OpenGL ๋ฒ์ [์ ๋ณด] [GL] OpenGL ๊ณต๊ธ์
์ฒด [์ ๋ณด] [GL] OpenGL ๋ ๋๋ฌ
[INFO ] [GL ] OpenGL ๊ตฌ๋ฌธ ๋ถ์ ๋ฒ์ : 1, 1
[์ค์] [GL ] ์ต์ ํ์ OpenGL ๋ฒ์ (2.0)์ ์ฐพ์ ์ ์์ต๋๋ค!
๊ฐ์ง๋ OpenGL ๋ฒ์ : 1.1
๋ฒ์ : b'1.1.0'
๊ณต๊ธ์
์ฒด: b'Microsoft Corporation'
๋ ๋๋ฌ: b'GDI ์ผ๋ฐ'
๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ๊ทธ๋ํฝ ๋๋ผ์ด๋ฒ ๋ฐ/๋๋ ๊ทธ๋ํฝ ํ๋์จ์ด๋ฅผ ์ ๊ทธ๋ ์ด๋ํด ๋ณด์ญ์์ค.
์ด์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ข ๋ฃ๋ฉ๋๋ค.
Anaconda๋ Windows/Python ๋นํธ ์กฐํฉ์ ๊ด๊ณ์์ด ์ถฉ๋ํ์ง๋ง ๊ณต์ Python ๋ฐฐํฌํ์๋ 32๋นํธ ๋ฒ์ ์ด 64๋นํธ Windows์์ ์คํ๋ ๋๋ง ๋ฌธ์ ๊ฐ ์์ต๋๊น?
๋ง์ง๋ง ์๋์์ ๋๋ ์๋์ฝ๋ค ๋ฒ๋ค์ด ์๋ python36์ ์ฌ์ฉํ๊ณ ๋ฌธ์ ๋ ์ฌ์ ํ ๊ฑฐ๊ธฐ์ ์์ต๋๋ค.
์ฃ์กํฉ๋๋ค. ์๋ชป๋ ๋ฒ์ ์ python 36์ ๋ค์ด๋ก๋ํ ์ ์ค์์ ๋๋ค. ์ด๊ฒ์ ์ฌ๋ฐ๋ฅธ ๋ฒ์ ์ด๋ฉฐ ์ฌ์ ํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
(hello) D:anaconda projecthello>scriptspython main.py
[INFO ] [Logger ] C:UsersYen.kivylogskivy_17-06-29_14.txt์ ๋ก๊ทธ์ธ ๊ธฐ๋ก
[์ ๋ณด] [ํค๋น] v1.10.0
[์ ๋ณด] [ํ์ด์ฌ] v3.6.1 (v3.6.1:69c0db5, 2017๋
3์ 21์ผ, 18:41:36) [MSC v.1900 64๋นํธ(AMD64)]
[์ ๋ณด] [๊ณต์ฅ] 194๊ฐ์ ๊ธฐํธ๊ฐ ๋ก๋๋จ
[์ ๋ณด] [์ด๋ฏธ์ง] ๊ณต๊ธ์: img_tex, img_dds, img_sdl2, img_gif (img_pil, img_ffpyplayer ๋ฌด์)
[์ ๋ณด] [ํ
์คํธ] ๊ณต๊ธ์: sdl2
[์ ๋ณด] [OSC] ์ฌ์ฉ
[์ ๋ณด] [์ฐฝ] ๊ณต๊ธ์: sdl2
[INFO ] [GL ] "OpenGL" ๊ทธ๋ํฝ ์์คํ
์ฌ์ฉ
[INFO ] [GL ] GLEW ์ด๊ธฐํ ์ฑ๊ณต
[INFO ] [GL ] ํ๋ ์ ๋ฒํผ ํ์ฅ์ด ์ง์๋์ง ์์ต๋๋ค.
[INFO ] [GL ] ๋ฐฑ์๋ ์ฌ์ฉ
[์ ๋ณด] [GL] OpenGL ๋ฒ์ [์ ๋ณด] [GL] OpenGL ๊ณต๊ธ์
์ฒด [์ ๋ณด] [GL] OpenGL ๋ ๋๋ฌ
[INFO ] [GL ] OpenGL ๊ตฌ๋ฌธ ๋ถ์ ๋ฒ์ : 1, 1
[์ค์] [GL ] ์ต์ ํ์ OpenGL ๋ฒ์ (2.0)์ ์ฐพ์ ์ ์์ต๋๋ค!
๊ฐ์ง๋ OpenGL ๋ฒ์ : 1.1
๋ฒ์ : b'1.1.0'
๊ณต๊ธ์
์ฒด: b'Microsoft Corporation'
๋ ๋๋ฌ: b'GDI ์ผ๋ฐ'
๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ๊ทธ๋ํฝ ๋๋ผ์ด๋ฒ ๋ฐ/๋๋ ๊ทธ๋ํฝ ํ๋์จ์ด๋ฅผ ์ ๊ทธ๋ ์ด๋ํด ๋ณด์ญ์์ค.
์ด์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ข ๋ฃ๋ฉ๋๋ค.
์ด๋ป๊ฒ ๋ python์ ๋ค์ ์ค์นํ๊ณ SET KIVY_GL_BACKEND=angle_sdl2๋ฅผ ์ฌ์ฉํ ํ(์ด ๋ฐฉ๋ฒ๋ ์ด์ ์ ์ฌ์ฉํ์ง๋ง ์คํจํ์ต๋๋ค). ๋ง์นจ๋ด ์๋ํฉ๋๋ค. ์ง์ํด ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค.
๊ฒฝ์ฐ ํ์
@srudyanto ๋๋ virtualenv์์์ ๊ฐ์ด (hello) D:\anaconda project\hello>scripts\python main.py
๋ด
๋๋ค. ์ ์๋ ๊ทธ๊ฒ ์ผ์ข
์ ์ค์๋ผ๊ณ ๋ง ์๊ฐํ๋๋ฐ ์ง๊ธ์... virtualenv ์์ด kivy๋ฅผ ์ ์์ ์ผ๋ก ์ค์นํ๊ณ ์ ์์ ์ผ๋ก ์คํํ๋ ค๊ณ ํฉ๋๋ค(๊ฐ๋๊ฐ ์์ผ๋ฉด ์ด ํ
์คํธ์์๋ ์ค์นํ์ง๋ ์์). virtualenv ๋ฐ anaconda/virtualenv์ ๋ฌธ์ ์ผ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด๋ป๊ฒ๋ ๊ฒฝ๋ก์์ OpenGL ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ฑฐํ์ฌ ์ด OpenGL 1.1 ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
non-virtualenv๋ฅผ ์๋ํ๊ธฐ ์ ์ ํ์ฌ ๋ฐฐํฌํ์ผ๋ก ์๋ํ ์ ์๋ ๊ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
echo %PATH%
๊ฑฐ๊ธฐ์ C:\Windows\System32
(`opengl32.dll" ๋ฐ ๊ธฐํ ์ค์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋ ์์น)๊ฐ ์์ผ๋ฉด ๋ค์์ ์ํํ์ญ์์ค.
set PATH=C:\Windows\System32;%PATH%
ํด๋น ๊ฒฝ๋ก๊ฐ์๋ ๊ฒฝ์ฐ,์ด ์์ ์ ์ํ :
set
๋ชจ๋ ํ๊ฒฝ ๋ณ์๋ฅผ ํ์ํ๊ณ ์๋์ฝ๋ค๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ํน๋ณํ ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ์ง ์๋์ง ํ์ธํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์คํํ๋ฉด ๋ฉ๋๋ค.
py3.5+์ฉ ์ต๊ธ ๋ฐฑ์๋. ๋ช ๋ น์ค์์ ๋ค์๊ณผ ๊ฐ์ด ๋ง๋ญ๋๋ค.
pip ์ค์น kivy.deps.angle
KIVY_GL_BACKEND=angle_sdl2 ์ค์
๊ทธ๋ฆฌ๊ณ ๊ตฌ์ฑ ํ์ผ(์ ์ ๊ฒฝ์ฐ %HOMEPATH%.kivyconfig.ini)์์ multisamples ํค ๊ฐ์ multisamples = 2์์ multisamples = 0์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค.
๊ทธ๊ฒ์ Windows 10์์ ์๋ฒฝํ๊ฒ ์๋ํฉ๋๋ค.
OpenGL 3.1์ด ์์ง๋ง Windows 10์์ ์๋ํ์ง ์์์ต๋๋ค!
๋ง์นจ๋ด ์๋ฃจ์ ์ ์ฐพ์ ์ฌ๊ธฐ์ ๋ฌธ์ํํ์ต๋๋ค(ํ๋จ์ผ๋ก ์ด๋)!
๋๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์๊ณ cmd์์ ์ด๊ฒ์ ์คํํ์ฌ ํด๊ฒฐํ์ต๋๋ค.
bash
pip install kivy.deps.angle && set KIVY_GL_BACKEND=angle_sdl2
์ ๋ OpenGL์ด 2.0 ์ด์์ธ Windows 10 ์ฌ์ฉ์์ด๋ฉฐ ๋์ผํ ๋ฌธ์ ์ ์ง๋ฉดํ๊ณ ----์ ๋์์ ์ฌ์ฉํ์ฌ ํด๊ฒฐํฉ๋๋ค.
[๋งํฌ] (https://stackoverflow.com/questions/34969990/kivy-does-not-detect-opengl-2-0)
๊ฐ์ฌํฉ๋๋ค, Ruithlzz09. OpenGL 1.1๊ณผ ํจ๊ป Windows 10์์๋ ์๋ํฉ๋๋ค!
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์๊ณ cmd์์ ์ด๊ฒ์ ์คํํ์ฌ ํด๊ฒฐํ์ต๋๋ค.
bash pip install kivy.deps.angle && set KIVY_GL_BACKEND=angle_sdl2