Kivy: Kivy 1.9.1, kivy.app.App์„ ๊ฐ€์ ธ์˜ค๋Š” ๋™์•ˆ ImportError ๋ฐœ์ƒ

์— ๋งŒ๋“  2016๋…„ 01์›” 04์ผ  ยท  26์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: kivy/kivy

Windows7 64๋น„ํŠธ์— ์ƒˆ๋กœ์šด Python2.7.10, Kivy1.9.1(kivy.org ์›น์‚ฌ์ดํŠธ์˜ ์ง€์นจ์— ๋”ฐ๋ฆ„)์„ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค.
์ด ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ImportError๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

from kivy.app import App
from kivy.uix.button import Button


class ButtonApp(App):

    def build(self):
        return Button(text='TEST')


ButtonApp().run()

์ฝ˜์†” ์ถœ๋ ฅ:

E:\Python27\python.exe E:/workspace/TEST/test_kivy_1.9.1/main.py
[INFO              ] [Logger      ] Record log in C:\Users\Skerleton\.kivy\logs\kivy_16-01-04_38.txt
[INFO              ] [Kivy        ] v1.9.1
[INFO              ] [Python      ] v2.7.10 (default, May 23 2015, 09:40:32) [MSC v.1500 32 bit (Intel)]
[INFO              ] [Factory     ] 179 symbols loaded
[DEBUG             ] [Cache       ] register <kv.lang> with limit=None, timeout=None
 Traceback (most recent call last):
   File "E:/workspace/TEST/test_kivy_1.9.1/main.py", line 1, in <module>
     from kivy.app import App
   File "E:\Python27\lib\site-packages\kivy\app.py", line 327, in <module>
     from kivy.uix.widget import Widget
   File "E:\Python27\lib\site-packages\kivy\uix\widget.py", line 219, in <module>
     from kivy.graphics import (
   File "E:\Python27\lib\site-packages\kivy\graphics\__init__.py", line 89, in <module>
     from kivy.graphics.instructions import Callback, Canvas, CanvasBase, \
 ImportError: DLL load failed: The specified module could not be found.

Process finished with exit code 1

Kivy๋Š” Gstreamer๋ฅผ ์ œ์™ธํ•˜๊ณ  ๋ฌธ์ œ ์—†์ด ์„ค์น˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์ด ์˜ค๋ฅ˜๋Š” kivy google ๊ทธ๋ฃน์˜ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ณด๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค.

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

gstreamer ๋ฌธ์ œ๊ฐ€ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ชจ๋“  ์ข…์†์„ฑ์„ ์—…๋ฐ์ดํŠธํ–ˆ์œผ๋ฏ€๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ python -m pip install --upgrade docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew kivy.deps.gstreamer --extra-index-url https://kivy.org/downloads/packages/simple/ ๋กœ ๋‹ค์‹œ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

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

์ด๋Ÿฐ ์ข…๋ฅ˜์˜ ๋ฌธ์ œ๋Š” ์—ฌ๊ธฐ์„œ ๋””๋ฒ„๊ทธํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. #kivy์—์„œ IRC์— ๊ฐ€์ž…ํ•˜์‹œ๋ฉด ๋” ์‰ฌ์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

gstreamer ๋ฌธ์ œ๊ฐ€ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ชจ๋“  ์ข…์†์„ฑ์„ ์—…๋ฐ์ดํŠธํ–ˆ์œผ๋ฏ€๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ python -m pip install --upgrade docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew kivy.deps.gstreamer --extra-index-url https://kivy.org/downloads/packages/simple/ ๋กœ ๋‹ค์‹œ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

์ข…์†์„ฑ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ ํ›„ ์ƒˆ๋กœ์šด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

E:\Python27\python.exe E:/workspace/TEST/test_kivy_1.9.1/main.py
[INFO              ] [Logger      ] Record log in C:\Users\Skerleton\.kivy\logs\kivy_16-01-05_4.txt
[INFO              ] [Kivy        ] v1.9.1
[INFO              ] [Python      ] v2.7.10 (default, May 23 2015, 09:40:32) [MSC v.1500 32 bit (Intel)]
[INFO              ] [Factory     ] 179 symbols loaded
[DEBUG             ] [Cache       ] register <kv.lang> with limit=None, timeout=None
[DEBUG             ] [Cache       ] register <kv.image> with limit=None, timeout=60
[DEBUG             ] [Cache       ] register <kv.atlas> with limit=None, timeout=None
[INFO              ] [Image       ] Providers: img_tex, img_dds, img_gif, img_sdl2 (img_pil, img_ffpyplayer ignored)
[DEBUG             ] [Cache       ] register <kv.texture> with limit=1000, timeout=60
[DEBUG             ] [Cache       ] register <kv.shader> with limit=1000, timeout=3600
[DEBUG             ] [Text        ] Ignored <sdl2> (import error)
[DEBUG             ] [Text        ] Ignored <pil> (import error)
[CRITICAL          ] [Text        ] Unable to find any valuable Text provider at all!
sdl2 - ImportError: DLL load failed: The specified procedure could not be found.
  File "E:\Python27\lib\site-packages\kivy\core\__init__.py", line 59, in core_select_lib
    fromlist=[modulename], level=0)
  File "E:\Python27\lib\site-packages\kivy\core\text\text_sdl2.py", line 12, in <module>
    from kivy.core.text._text_sdl2 import (_SurfaceContainer, _get_extents,

pil - ImportError: No module named PIL
  File "E:\Python27\lib\site-packages\kivy\core\__init__.py", line 59, in core_select_lib
    fromlist=[modulename], level=0)
  File "E:\Python27\lib\site-packages\kivy\core\text\text_pil.py", line 8, in <module>
    from PIL import Image, ImageFont, ImageDraw

[CRITICAL          ] [App         ] Unable to get a Text provider, abort.

Process finished with exit code 1

kivy๊ฐ€ ํ…์ŠคํŠธ ๊ณต๊ธ‰์ž๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฒ ๊ฐœ๋ฅผ ์„ค์น˜ํ–ˆ์ง€๋งŒ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

E:\Python27\python.exe E:/workspace/TEST/test_kivy_1.9.1/main.py
[INFO              ] [Logger      ] Record log in C:\Users\Skerleton\.kivy\logs\kivy_16-01-05_9.txt
[INFO              ] [Kivy        ] v1.9.1
[INFO              ] [Python      ] v2.7.10 (default, May 23 2015, 09:40:32) [MSC v.1500 32 bit (Intel)]
[INFO              ] [Factory     ] 179 symbols loaded
[DEBUG             ] [Cache       ] register <kv.lang> with limit=None, timeout=None
[DEBUG             ] [Cache       ] register <kv.image> with limit=None, timeout=60
[DEBUG             ] [Cache       ] register <kv.atlas> with limit=None, timeout=None
[INFO              ] [Image       ] Providers: img_tex, img_dds, img_gif, img_sdl2, img_pil (img_ffpyplayer ignored)
[DEBUG             ] [Cache       ] register <kv.texture> with limit=1000, timeout=60
[DEBUG             ] [Cache       ] register <kv.shader> with limit=1000, timeout=3600
[DEBUG             ] [Text        ] Ignored <sdl2> (import error)
[INFO              ] [Text        ] Provider: pil(['text_sdl2'] ignored)
[DEBUG             ] [App         ] Loading kv <E:/workspace/TEST/test_kivy_1.9.1\button.kv>
[DEBUG             ] [App         ] kv <E:/workspace/TEST/test_kivy_1.9.1\button.kv> not found
[INFO              ] [OSC         ] using <thread> for socket
[INFO              ] [Window      ] Provider: sdl2
[INFO              ] [GL          ] GLEW initialization succeeded
[INFO              ] [GL          ] OpenGL version <4.5.0 NVIDIA 347.88>
[INFO              ] [GL          ] OpenGL vendor <NVIDIA Corporation>
[INFO              ] [GL          ] OpenGL renderer <GeForce GTX 560 SE/PCIe/SSE2>
[INFO              ] [GL          ] OpenGL parsed version: 4, 5
[INFO              ] [GL          ] Shading version <4.50 NVIDIA>
[INFO              ] [GL          ] Texture max size <16384>
[INFO              ] [GL          ] Texture max units <32>
[DEBUG             ] [Shader      ] Fragment compiled successfully
[DEBUG             ] [Shader      ] Vertex compiled successfully
[DEBUG             ] [ImageSDL2   ] Load <E:\Python27\lib\site-packages\kivy\data\glsl\default.png>
[INFO              ] [Window      ] auto add sdl2 input provider
[INFO              ] [Window      ] virtual keyboard not allowed, single mode, not docked
[DEBUG             ] [Resource    ] add <C:\Windows\Fonts> in path list
[DEBUG             ] [Resource    ] add <E:\Python27\lib\site-packages\kivy\data\fonts> in path list
[DEBUG             ] [Base        ] Create provider from mouse,disable_multitouch
[DEBUG             ] [Base        ] Create provider from wm_touch
[DEBUG             ] [Base        ] Create provider from wm_pen
[INFO              ] [Base        ] Start application main loop
[INFO              ] [GL          ] NPOT texture support is available
[DEBUG             ] [Atlas       ] Load <E:\Python27\lib\site-packages\kivy\data\..\data\images\defaulttheme.atlas>
[DEBUG             ] [Atlas       ] Need to load 1 images
[DEBUG             ] [Atlas       ] Load <E:\Python27\lib\site-packages\kivy\data\..\data\images\defaulttheme-0.png>
[DEBUG             ] [ImageSDL2   ] Load <E:\Python27\lib\site-packages\kivy\data\..\data\images\defaulttheme-0.png>
 Exception Exception: Exception('tostring() has been removed. Please call tobytes() instead.',) in 'kivy.graphics.instructions.RenderContext.set_texture' ignored

๋ฒ„ํŠผ ํ…์ŠคํŠธ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
screenshot_20

์งˆ๋ฌธ์ด ์žˆ์œผ๋ฉด "pythonic64"๋ผ๋Š” ๋ณ„๋ช…์„ ๊ฐ€์ง„ IRC #kivy์— ๊ฐ€์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค.

Windows์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ ์—ฌ๊ธฐ์—์„œ ์‹œ๋„ํ•˜๋Š” ์ด์ „ ๋ฒ„์ „์˜ SDL2 ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜์—ฌ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. https://kivy.org/downloads/appveyor/deps/sdl2/

@SamZapata , SDL2๋Š” ๋” ์ด์ƒ ๋‚˜์—๊ฒŒ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ์ง€๋งŒ Gstreamer๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์ตœ์‹  gstreamer(kivy.deps.gstreamer-0.1.5)๋ฅผ ์„ค์น˜ํ•˜๋ฉด Python27 ๋ฐ Python34 32bit ์—์„œ ์œ„์˜ ํ…์ŠคํŠธ ๊ณต๊ธ‰์ž ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
๋˜ํ•œ Gstreamer ์„ค์น˜๋Š” Python27\share\gstreamer ํด๋”์— "registry.bin" ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@matham ์€ ์ด ์˜ค๋ฅ˜๊ฐ€ SDL2์™€ Gstreamer dll ํŒŒ์ผ ๊ฐ„์˜ ์ถฉ๋Œ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. gstreamer\bin์—์„œ "libfreetype-6.dll"์„ ์ œ๊ฑฐํ•˜๋ฉด ํ…์ŠคํŠธ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€๋งŒ ..kivy-examples\widgetsvideoplayer.py์˜ ๋น„๋””์˜ค๋Š” ์žฌ์ƒ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(http://pastebin.com/LwR1cGA7).

Python34 64๋น„ํŠธ์—์„œ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

https://drive.google.com/drive/folders/0B1_HB9J8mZepNzZ5aW91Q0tJU2s์— ์ƒˆ gstreamer๋ฅผ ์—…๋กœ๋“œํ–ˆ์Šต๋‹ˆ๋‹ค

์ƒˆ๋กœ์šด Gstreamer ํœ  kivy.deps.gstreamer-0.1.6-cp27-none-win32๋ฅผ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค.
์ด์ „๊ณผ ๋™์ผํ•œ ์˜ค๋ฅ˜:

e:\Python27\share\kivy-examples\widgets>python label_mipmap.py
[INFO              ] [Kivy        ] v1.9.1
[INFO              ] [Python      ] v2.7.9 (default, Dec 10 2014, 12:24:55) [MSC v.1500 32 bit (Intel)]
[INFO              ] [Factory     ] 179 symbols loaded
[INFO              ] [Image       ] Providers: img_tex, img_dds, img_gif, img_sdl2 (img_pil, img_ffpyplayer ignored)
[CRITICAL          ] [Text        ] Unable to find any valuable Text provider at all!
sdl2 - ImportError: DLL load failed: The specified procedure could not be found.
  File "E:\Python27\lib\site-packages\kivy\core\__init__.py", line 59, in core_select_lib
    fromlist=[modulename], level=0)
  File "E:\Python27\lib\site-packages\kivy\core\text\text_sdl2.py", line 12, in <module>
    from kivy.core.text._text_sdl2 import (_SurfaceContainer, _get_extents,

pil - ImportError: No module named PIL
  File "E:\Python27\lib\site-packages\kivy\core\__init__.py", line 59, in core_select_lib
    fromlist=[modulename], level=0)
  File "E:\Python27\lib\site-packages\kivy\core\text\text_pil.py", line 8, in <module>
    from PIL import Image, ImageFont, ImageDraw

[CRITICAL          ] [App         ] Unable to get a Text provider, abort.

์Œ ์•Œ์•˜์–ด. 2013 ๋ฒ„์ „์—์„œ ์—…๋ฐ์ดํŠธํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ์˜๊ตฌ์ ์œผ๋กœ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. gstreamer์—์„œ "๋‚˜์œ" dll์„ ์‚ญ์ œํ•˜๊ณ  sdl2 ๋ฒ„์ „์— ์˜์กดํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. sdl2๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”? ๊ทธ๋Ÿฌ๋ฉด ํ•ด๋‹น dll์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— gstreamer๊ฐ€ ๋” ์ด์ƒ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Python 32๋น„ํŠธ์—์„œ sdl2 ์„ค์น˜์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  gstreamer ๋ฒ„์ „์„ ์ถœ์‹œํ•˜๋Š” ๊ฒƒ์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ?
๊ทธ๋Ÿฐ ๋‹ค์Œ ์‚ฌ์šฉ์ž๋Š” ์„ค์น˜ํ•  ๋ฒ„์ „์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ ๋ฒ„์ „์˜ gstreamer๋ฅผ ์—…๋กœ๋“œํ•˜๊ณ  pip์—์„œ ์ฐพ๋„๋ก ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ๋ฒ„์ „๋งŒ ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ•ด๋‹น ๋ฒ„์ „์€ sdl2๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธํ•  ๋•Œ gst๊ฐ€ sdl2 dll๊ณผ ํ•จ๊ป˜ ์ž‘๋™ํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ •ํ™•ํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•ด์„œ๋Š” ์ข€ ๋” ์ž์„ธํžˆ ์กฐ์‚ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‹น์‹ ์€ ๊ทธ๊ฒƒ์ด ๋‹น์‹ ์—๊ฒŒ ํšจ๊ณผ๊ฐ€ ์—†๋‹ค๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ํ™•์‹คํžˆ ํ•˜๋ ค๋ฉด ๊นจ๋—ํ•œ ์‹œ์Šคํ…œ์—์„œ ํ…Œ์ŠคํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์„ ์ถ”์ ํ–ˆ์œผ๋ฉฐ sdl2_ttf dll ๋ฌธ์ œ๋กœ ์ธํ•œ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. sdl2: https://bugzilla.libsdl.org/show_bug.cgi?id=3241์— ๋Œ€ํ•œ ๋ฌธ์ œ๋ฅผ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค

๋‚˜๋Š” ๊ฒฐ๊ตญ msys2์— sdl2_ttf๋ฅผ ์ง์ ‘ ๊ตฌ์ถ•ํ–ˆ๊ณ , sdl2 ์ž์ฒด๊ฐ€ ์—…๋ฐ์ดํŠธ๋ฅผ ๋ฆด๋ฆฌ์Šคํ•  ๋•Œ๊นŒ์ง€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. pip install --upgrade kivy.deps.sdl2 ์‹œ๋„ํ•ด ๋ณด์„ธ์š”.

[INFO ] [Text ] Provider: pil(['text_sdl2'] ignored)

๋‚˜๋Š” gstreamer๊ฐ€ ์ „ํ˜€ ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š์ง€๋งŒ kivy.deps.sdl2==0.1.8 kivy.deps.sdl2_dev==0.1.8 ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์—ฌ์ „ํžˆ pil๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค.

kivy.deps.sdl2==0.1.11 ๋ฐ kivy.deps.gstreamer==0.1.6 ์‚ฌ์šฉํ•˜๋ฉด sdl2๊ฐ€ ํ…์ŠคํŠธ ์ œ๊ณต์ž๋กœ ์„ ํƒ๋˜์ง€๋งŒ gstreamer๋Š” ๋น„๋””์˜ค ์ œ๊ณต์ž๋กœ ์„ ํƒ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. kivy.deps.gstreamer==0.1.5 ์™€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

[INFO ] [Video ] Provider: null(['video_pygst', 'video_ffmpeg', 'video_ffpyplayer', 'video_pyglet'] ignored)

๋‚˜์—๊ฒŒ gstreamer์™€ sdl2 ํ…์ŠคํŠธ๋Š” ๋ชจ๋‘ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. Dessant ์ตœ์‹  ํŒจํ‚ค์ง€๋กœ ์‹œ๋„ํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

kivy.deps.sdl2==0.1.12 , kivy.deps.gstreamer==0.1.6 Python๊ณผ Kivy๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค.
ํšจ๊ณผ๊ฐ€์žˆ๋‹ค!

e:\Python27>python share\kivy-examples\widgets\videoplayer.py
[INFO              ] [Logger      ] Record log in C:\Users\Skerleton\.kivy\logs\kivy_16-01-18_60.txt
[INFO              ] [Kivy        ] v1.9.1
[INFO              ] [Python      ] v2.7.9 (default, Dec 10 2014, 12:24:55) [MSC v.1500 32 bit (Intel)]
[INFO              ] [Factory     ] 179 symbols loaded
[INFO              ] [Image       ] Providers: img_tex, img_dds, img_gif, img_sdl2 (img_pil, img_ffpyplayer ignored)
[INFO              ] [Text        ] Provider: sdl2
[INFO              ] [VideoGstplayer] Using Gstreamer 1.7.1.0
[INFO              ] [Video       ] Provider: gstplayer
[INFO              ] [OSC         ] using <thread> for socket
[INFO              ] [Window      ] Provider: sdl2
[INFO              ] [GL          ] GLEW initialization succeeded
[INFO              ] [GL          ] OpenGL version <4.5.0 NVIDIA 347.88>
[INFO              ] [GL          ] OpenGL vendor <NVIDIA Corporation>
[INFO              ] [GL          ] OpenGL renderer <GeForce GTX 560 SE/PCIe/SSE2>
[INFO              ] [GL          ] OpenGL parsed version: 4, 5
[INFO              ] [GL          ] Shading version <4.50 NVIDIA>
[INFO              ] [GL          ] Texture max size <16384>
[INFO              ] [GL          ] Texture max units <32>
[INFO              ] [Window      ] auto add sdl2 input provider
[INFO              ] [Window      ] virtual keyboard not allowed, single mode, not docked
[INFO              ] [GL          ] NPOT texture support is available
[INFO              ] [Base        ] Start application main loop

C:\Python34>python sharekivy-examples\demo\showcase\main.py
[INFO ] [Logger ] C:\Users\Anubhav.kivylogskivy_18-03-09_54.txt์— ๋กœ๊ทธ์ธ ๊ธฐ๋ก
[์ •๋ณด] [ํ‚ค๋น„] v1.10.0
[์ •๋ณด] [ํŒŒ์ด์ฌ] v3.4.4 (v3.4.4:737efcadf5a6, 2015๋…„ 12์›” 20์ผ, 20:20:57) [MSC v.1600 64๋น„ํŠธ(AMD64)]
[INFO] [Factory] 194๊ฐœ์˜ ๊ธฐํ˜ธ๊ฐ€ ๋กœ๋“œ๋จ
[์ •๋ณด] [์ด๋ฏธ์ง€] ๊ณต๊ธ‰์ž: img_tex, img_dds, img_pil, img_gif (img_sdl2, img_ffpyplayer ๋ฌด์‹œ)
[์ค‘์š”] [์ฐฝ] ๊ฐ€์น˜ ์žˆ๋Š” ์ฐฝ ๊ณต๊ธ‰์ž๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
sdl2 - ImportError: DLL ๋กœ๋“œ ์‹คํŒจ: ์ง€์ •๋œ ๋ชจ๋“ˆ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
core_select_lib์— ์žˆ๋Š” ํŒŒ์ผ "C:\Python34lib\site-packageskivy\core__init__.py", 59ํ–‰
fromlist=[๋ชจ๋“ˆ ์ด๋ฆ„], ๋ ˆ๋ฒจ=0)
ํŒŒ์ผ "C:\Python34lib\site-packageskivy\core\window\window_sdl2.py", 26ํ–‰,
kivy.core.window._window_sdl2์—์„œ _WindowSDL2Storage ๊ฐ€์ ธ์˜ค๊ธฐ

[์ค‘์š”] [์•ฑ ] ์ฐฝ์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ค‘๋‹จํ•˜์‹ญ์‹œ์˜ค.

์ด ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค ๋„์™€์ฃผ์„ธ์š”

์„ค์น˜ ํŽ˜์ด์ง€ ์—์„œ ๋ชจ๋“  Kivy ์ข…์†์„ฑ์„

sdl2(0.1.18) ๋ฐ gstreamer(0.1.13)๋ฅผ ํฌํ•จํ•˜์—ฌ Windows 10์— ์ตœ์‹  kivy ๋ฒ„์ „์„ ์„ค์น˜ํ•˜๋ ค๊ณ  ํ–ˆ์ง€๋งŒ ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

"C:\PycharmProjects\HelloWorld\venv\Scripts\python.exe" "C:/PycharmProjects/HelloWorld/main.py"
[INFO   ] [Logger      ] Record log in C:\.kivy\logs\kivy_18-11-20_44.txt
[INFO   ] [Kivy        ] v1.10.1
[INFO   ] [Python      ] v3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:57:15) [MSC v.1915 64 bit (AMD64)]
[INFO   ] [Factory     ] 194 symbols loaded
[INFO   ] [Image       ] Providers: img_tex, img_dds, img_gif (img_sdl2, img_pil, img_ffpyplayer ignored)
[CRITICAL] [Text        ] Unable to find any valuable Text provider.
sdl2 - ImportError: DLL load failed: Das angegebene Modul wurde nicht gefunden.
  File "C:\PycharmProjects\HelloWorld\venv\lib\site-packages\kivy\core\__init__.py", line 59, in core_select_lib
    fromlist=[modulename], level=0)
  File "C:\PycharmProjects\HelloWorld\venv\lib\site-packages\kivy\core\text\text_sdl2.py", line 12, in <module>
    from kivy.core.text._text_sdl2 import (_SurfaceContainer, _get_extents,

pil - ModuleNotFoundError: No module named 'PIL'
  File "C:\PycharmProjects\HelloWorld\venv\lib\site-packages\kivy\core\__init__.py", line 59, in core_select_lib
    fromlist=[modulename], level=0)
  File "C:\PycharmProjects\HelloWorld\venv\lib\site-packages\kivy\core\text\text_pil.py", line 7, in <module>
    from PIL import Image, ImageFont, ImageDraw

[CRITICAL] [App         ] Unable to get a Text provider, abort.

Process finished with exit code 1

๋ชจ๋“  ์ข…์†์„ฑ์„ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค(์ฝ˜์†”์— ๋”ฐ๋ผ ์„ฑ๊ณต์ ์œผ๋กœ).

C:\WINDOWS\system32>python -m pip install kivy.deps.sdl2
Collecting kivy.deps.sdl2
  Using cached https://files.pythonhosted.org/packages/93/84/a0dc274d993db6f9ebdf41eb4d55b032de005dbf47e4d54602cf83708b08/kivy.deps.sdl2-0.1.18-cp37-cp37m-win_amd64.whl
Installing collected packages: kivy.deps.sdl2
Successfully installed kivy.deps.sdl2-0.1.18

๋„์™€์ฃผ์„ธ์š”

์ข…์†์„ฑ ์„ค์น˜(ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ gstreamer(~120MB) ๊ฑด๋„ˆ๋›ฐ๊ธฐ, Kivy์˜ ์ข…์†์„ฑ ์ฐธ์กฐ):

ํŒŒ์ด์ฌ -m pip ์„ค์น˜ docutils pygments pypiwin32 kivy.deps.sdl2
kivy.deps.glew; ํŒŒ์ด์ฌ -m pip ์„ค์น˜ kivy.deps.gstreamer

PyCharm 2018.3.6 ๋ฐ Python ๋ฒ„์ „ 3.7.2 Windows10์—์„œ ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
๋ชจ๋“  ์ข…์†์„ฑ๋„ ์„ค์น˜ํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

sdl2 - ImportError: DLL ๋กœ๋“œ ์‹คํŒจ: ์ง€์ •๋œ ๋ชจ๋“ˆ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
core_select_lib์˜ "C:\Users\Austin\AppData\Local\Programs\Python\Python37-32lib\site-packageskivy\core__init__.py" ํŒŒ์ผ, 59ํ–‰
fromlist=[๋ชจ๋“ˆ ์ด๋ฆ„], ๋ ˆ๋ฒจ=0)
ํŒŒ์ผ "C:\Users\Austin\AppData\Local\Programs\Python\Python37-32lib\site-packageskivy\core\text\text_sdl2.py", ๋ผ์ธ 12, in
kivy.core.text._text_sdl2์—์„œ ๊ฐ€์ ธ์˜ค๊ธฐ(_SurfaceContainer, _get_extents,

pil - ModuleNotFoundError: 'PIL'์ด๋ผ๋Š” ๋ชจ๋“ˆ์ด ์—†์Šต๋‹ˆ๋‹ค.
core_select_lib์˜ "C:\Users\Austin\AppData\Local\Programs\Python\Python37-32lib\site-packageskivy\core__init__.py" ํŒŒ์ผ, 59ํ–‰
fromlist=[๋ชจ๋“ˆ ์ด๋ฆ„], ๋ ˆ๋ฒจ=0)
ํŒŒ์ผ "C:\Users\Austin\AppData\Local\Programs\Python\Python37-32lib\site-packageskivy\core\text\text_pil.py", 7ํ–‰,
PIL ๊ฐ€์ ธ์˜ค๊ธฐ ์ด๋ฏธ์ง€, ImageFont, ImageDraw์—์„œ

[์ค‘์š”] [์•ฑ ] ํ…์ŠคํŠธ ๊ณต๊ธ‰์ž๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ค‘๋‹จํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋˜ํ•œ ๋งค์šฐ ์œ ์‚ฌํ•œ ์„ค์ •์œผ๋กœ @VipinDubeyCB ์™€ ๋™์ผํ•œ ๋ฌธ์ œ๋ฅผ
์šด์˜ ์ฒด์ œ: Windows10
IDE: ํŒŒ์ด์ฐธ 2018.3.6,
ํŒŒ์ด์ฌ ๋ฒ„์ „ 3.7.2

์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€:
[์ค‘์š”] [ํ…์ŠคํŠธ] ๊ฐ€์น˜ ์žˆ๋Š” ํ…์ŠคํŠธ ๊ณต๊ธ‰์ž๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋””๋ฒ„๊ทธ ๋กœ๊น…์„ ํ™œ์„ฑํ™”ํ•˜๊ณ (์˜ˆ: ๋ช…๋ น์ค„์—์„œ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ add -d, ๊ตฌ์„ฑ์—์„œ ๋กœ๊ทธ ์ˆ˜์ค€ ๋ณ€๊ฒฝ) ์•ฑ์„ ๋‹ค์‹œ ์‹คํ–‰ํ•˜์—ฌ ์ž ์žฌ์  ์›์ธ์„ ์‹๋ณ„ํ•˜์„ธ์š”.
sdl2 - ImportError: DLL ๋กœ๋“œ ์‹คํŒจ: ์ง€์ •๋œ ๋ชจ๋“ˆ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
core_select_lib์˜ "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64lib\site-packageskivy\core__init__.py" ํŒŒ์ผ, 63ํ–‰
fromlist=[๋ชจ๋“ˆ ์ด๋ฆ„], ๋ ˆ๋ฒจ=0)
ํŒŒ์ผ "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64lib\site-packageskivy\core\text\text_sdl2.py", ์ค„ 13,
kivy.core.text._text_sdl2์—์„œ ๊ฐ€์ ธ์˜ค๊ธฐ(_SurfaceContainer, _get_extents,

pil - ModuleNotFoundError: 'PIL'์ด๋ผ๋Š” ๋ชจ๋“ˆ์ด ์—†์Šต๋‹ˆ๋‹ค.
core_select_lib์˜ "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64lib\site-packageskivy\core__init__.py" ํŒŒ์ผ, 63ํ–‰
fromlist=[๋ชจ๋“ˆ ์ด๋ฆ„], ๋ ˆ๋ฒจ=0)
ํŒŒ์ผ "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64lib\site-packageskivy\core\text\text_pil.py", ์ค„ 7,
PIL ๊ฐ€์ ธ์˜ค๊ธฐ ์ด๋ฏธ์ง€, ImageFont, ImageDraw์—์„œ

[์ค‘์š”] [์•ฑ ] ํ…์ŠคํŠธ ๊ณต๊ธ‰์ž๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ค‘๋‹จํ•ฉ๋‹ˆ๋‹ค.

pycharm์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ pycharm ํ”„๋กœ์ ํŠธ์˜ ๊ธฐ๋ณธ ์„ค์ •์œผ๋กœ ๋ณด์ด๋Š” virtualenv๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด pycharm ํ„ฐ๋ฏธ๋„์— kivy๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋˜๋Š” ํ”„๋กœ์ ํŠธ๊ฐ€ Windows ํ„ฐ๋ฏธ๋„์—์„œ ์†Œ์‹ฑํ•˜๋Š” ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ํ™œ์„ฑํ™”ํ•œ ๋‹ค์Œ kivy๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋˜ํ•œ ๋งค์šฐ ์œ ์‚ฌํ•œ ์„ค์ •์œผ๋กœ @VipinDubeyCB ์™€ ๋™์ผํ•œ ๋ฌธ์ œ๋ฅผ
์šด์˜ ์ฒด์ œ: Windows10
IDE: ํŒŒ์ด์ฐธ 2018.3.6,
ํŒŒ์ด์ฌ ๋ฒ„์ „ 3.7.2

[INFO] [Logger] C:\Users\ะœะพั…ะธั€ะฑะตะบ.kivylogskivy_20-09-23_44.txt์— ๋กœ๊ทธ์ธ ๊ธฐ๋ก
[์ •๋ณด] [deps] "kivy_deps.sdl2" 0.2.0 ๊ฐ€์ ธ์˜ค๊ธฐ ์„ฑ๊ณต
[์ •๋ณด] [ํ‚ค๋น„] v1.11.1
[์ •๋ณด] [Kivy] "C:\Users\ะœะพั…ะธั€ะฑะตะบ\PycharmProjectspythonProject1venvlib\site-packageskivy__init__.py"์— ์„ค์น˜๋จ
[์ •๋ณด] [ํŒŒ์ด์ฌ] v3.7.2 (tags/v3.7.2:9a3ffc0492, 2018๋…„ 12์›” 23์ผ, 22:20:52) [MSC v.1916 32๋น„ํŠธ(์ธํ…”)]
[INFO ] [Python ] ์ธํ„ฐํ”„๋ฆฌํ„ฐ "C:\Users\ะœะพั…ะธั€ะฑะตะบ\PycharmProjectspythonProject1venv\Scriptspython.exe"
[INFO ] [Factory] 184๊ฐœ์˜ ๊ธฐํ˜ธ๊ฐ€ ๋กœ๋“œ๋จ
[์ •๋ณด] [์ด๋ฏธ์ง€] ๊ณต๊ธ‰์ž: img_tex, img_dds, img_sdl2, img_gif (img_pil, img_ffpyplayer ๋ฌด์‹œ)
[์ •๋ณด] [ํ…์ŠคํŠธ] ๊ณต๊ธ‰์ž: sdl2
[์ •๋ณด] [์ฐฝ] ๊ณต๊ธ‰์ž: sdl2
[์ค‘์š”] [์ฐฝ] ๊ฐ€์น˜ ์žˆ๋Š” ์ฐฝ ๊ณต๊ธ‰์ž๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋””๋ฒ„๊ทธ ๋กœ๊น…์„ ํ™œ์„ฑํ™”ํ•˜๊ณ (์˜ˆ: ๋ช…๋ น์ค„์—์„œ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ add -d, ๊ตฌ์„ฑ์—์„œ ๋กœ๊ทธ ์ˆ˜์ค€ ๋ณ€๊ฒฝ) ์•ฑ์„ ๋‹ค์‹œ ์‹คํ–‰ํ•˜์—ฌ ์ž ์žฌ์  ์›์ธ์„ ์‹๋ณ„ํ•˜์„ธ์š”.
sdl2 - ImportError: DLL ๋กœ๋“œ ์‹คํŒจ: ะะต ะฝะฐะนะดะตะฝ ัƒะบะฐะทะฐะฝะฝั‹ะน ะผะพะดัƒะปัŒ.
core_select_lib์˜ "C:\Users\ะœะพั…ะธั€ะฑะตะบ\PycharmProjectspythonProject1venvlib\site-packageskivy\core__init__.py" ํŒŒ์ผ, 71ํ–‰
cls = cls()
ํŒŒ์ผ "C:\Users\ะœะพั…ะธั€ะฑะตะบ\PycharmProjectspythonProject1venvlib\site-packageskivy\core\window\window_sdl2.py", __init__์˜ 152ํ–‰
super(WindowsSDL, self).__init__()
ํŒŒ์ผ "C:\Users\ะœะพั…ะธั€ะฑะตะบ\PycharmProjectspythonProject1venvlib\site-packageskivy\core\window__init__.py", ๋ผ์ธ 981, __init__
self.create_window()
"C:\Users\ะœะพั…ะธั€ะฑะตะบ\PycharmProjectspythonProject1venvlib\site-packageskivy\core\window\window_sdl2.py" ํŒŒ์ผ, 290ํ–‰, create_window
self.get_gl_backend_name())
get_gl_backend_name์˜ "C:\Users\ะœะพั…ะธั€ะฑะตะบ\PycharmProjectspythonProject1venvlib\site-packageskivy\core\window__init__.py" ์ค„ 1220
๋ฌด์‹œ๋จ=self.gl_backends_ignored)
ํŒŒ์ผ "kivy\graphics\cgl.pyx", 56ํ–‰, kivy.graphics.cgl.cgl_get_backend_name
ํŒŒ์ผ "kivy\graphics\cgl.pyx", 69ํ–‰, kivy.graphics.cgl.cgl_get_backend_name
import_module์˜ "C:\Users\ะœะพั…ะธั€ะฑะตะบ\AppData\Local\Programs\Python\Python37-32lib\importlib__init__.py" ํŒŒ์ผ, 127ํ–‰
return _bootstrap._gcd_import(์ด๋ฆ„[๋ ˆ๋ฒจ:], ํŒจํ‚ค์ง€, ๋ ˆ๋ฒจ)
ํŒŒ์ผ "", 1006ํ–‰, _gcd_import
ํŒŒ์ผ "", 983ํ–‰, _find_and_load
ํŒŒ์ผ "", 967ํ–‰, _find_and_load_unlocked
ํŒŒ์ผ "", 670ํ–‰, _load_unlocked
ํŒŒ์ผ "", module_from_spec์˜ 583ํ–‰
ํŒŒ์ผ "", 1043ํ–‰, create_module
ํŒŒ์ผ "", 219ํ–‰, _call_with_frames_removed

[์ค‘์š”] [์•ฑ ] ์ฐฝ์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ค‘๋‹จํ•˜์‹ญ์‹œ์˜ค.

์ข…๋ฃŒ ์ฝ”๋“œ 1๋กœ ํ”„๋กœ์„ธ์Šค ์™„๋ฃŒ

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