Kivy: Kivy sdl2 DLL λ‘œλ“œ μ‹€νŒ¨

에 λ§Œλ“  2018λ…„ 03μ›” 26일  Β·  29μ½”λ©˜νŠΈ  Β·  좜처: kivy/kivy

  • 파이썬: 3.6.4
  • 운영 체제: μœˆλ„μš° 10
  • ν‚€λΉ„: 1.10.0
  • ν‚€λΉ„ μ„€μΉ˜ 방법:
    python -m pip install --upgrade pip wheel setuptools
    파이썬 -m pip μ„€μΉ˜ docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew
    파이썬 -m pip μ„€μΉ˜ kivy.deps.gstreamer
    파이썬 -m pip μ„€μΉ˜ kivy.deps.angle
    파이썬 -m pip μ„€μΉ˜ ν‚€λΉ„
    파이썬 -m pip μ„€μΉ˜ kivy_examples
    python -m pip μ„€μΉ˜ 베개
    python -m pip μ„€μΉ˜ cython
    python -m pip install PyEnchant

μ„€λͺ…

μ•ˆλ…•ν•˜μ„Έμš”, μ„€μΉ˜ Kivyμ—μ„œ 예제 μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜λ €κ³  ν•©λ‹ˆλ‹€. λ‹€μŒμ€ λ‚΄κ°€ 받은 였λ₯˜μž…λ‹ˆλ‹€. μ–΄λ–€ 도움이라도 μ’‹μŠ΅λ‹ˆλ‹€. λΉ„μŠ·ν•œ λ¬Έμ œμ— λŒ€ν•œ 이전 문의λ₯Ό μ‚΄νŽ΄λ³΄μ•˜μ§€λ§Œ μ§€κΈˆκΉŒμ§€ μ œμ•ˆλœ λ‚΄μš©μ΄ μ—†μŠ΅λ‹ˆλ‹€.

[INFO   ] [Logger      ] Record log in C:\Users\DoddJ\.kivy\logs\kivy_18-03-26_52.txt
[INFO   ] [Kivy        ] v1.10.0
[INFO   ] [Python      ] v3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:04:45) [MSC v.1900 32 bit (Intel)]
[INFO   ] [Factory     ] 194 symbols loaded
[INFO   ] [Image       ] Providers: img_tex, img_dds, img_pil, img_gif (img_sdl2, img_ffpyplayer ignored)
[INFO   ] [Text        ] Provider: pil(['text_sdl2'] ignored)
[CRITICAL] [Window      ] Unable to find any valuable Window provider.
sdl2 - ImportError: DLL load failed: The specified module could not be found.
  File "C:\Users\dev.DoddJ\AppData\Local\Programs\Python\Python36-32\lib\site-packages\kivy\core\__init__.py", line 59, in core_select_lib
    fromlist=[modulename], level=0)
  File "C:\Users\dev.DoddJ\AppData\Local\Programs\Python\Python36-32\lib\site-packages\kivy\core\window\window_sdl2.py", line 26, in <module>
    from kivy.core.window._window_sdl2 import _WindowSDL2Storage

[CRITICAL] [App         ] Unable to get a Window, abort.
 Exception ignored in: 'kivy.properties.dpi2px'
 Traceback (most recent call last):
   File "C:\Users\dev.DoddJ\AppData\Local\Programs\Python\Python36-32\lib\site-packages\kivy\utils.py", line 496, in __get__
     retval = self.func(inst)
   File "C:\Users\dev.DoddJ\AppData\Local\Programs\Python\Python36-32\lib\site-packages\kivy\metrics.py", line 174, in dpi
     EventLoop.ensure_window()
   File "C:\Users\dev.DoddJ\AppData\Local\Programs\Python\Python36-32\lib\site-packages\kivy\base.py", line 127, in ensure_window
     sys.exit(1)
 SystemExit: 1
[CRITICAL] [App         ] Unable to get a Window, abort.

μ½”λ“œ 및 둜그

λ‚΄κ°€ μ‹€ν–‰ν•˜λ €κ³ ν•˜λŠ” μ½”λ“œ :

import kivy
kivy.require('1.10.0') # replace with your current kivy version !

from kivy.app import App
from kivy.uix.label import Label


class MyApp(App):

    def build(self):
        return Label(text='Hello world')


if __name__ == '__main__':
    MyApp().run()
documentation Windows

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

잘,

μΆ”κ°€ ν…ŒμŠ€νŠΈ κ²°κ³Ό kivy.deps.glew 및 kivy.deps.sdl2 κ°€ λͺ¨λ‘ κ΄€λ¦¬μž λͺ¨λ“œμ— μ„€μΉ˜λœ 경우 μ˜¬λ°”λ₯΄κ²Œ μž‘λ™ν•˜λŠ” κ²ƒμœΌλ‘œ λ‚˜νƒ€λ‚¬μŠ΅λ‹ˆλ‹€.

λ¬Έμ œλŠ” λ„ˆλ¬΄ 많이 site-packages\kivy\deps\*\__init__.py 둜 ν•˜λ“œμ½”λ”©λ˜λŠ” 데 μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

Pip νŒ¨ν‚€μ§€μ˜ DLL을 PATH ...에 μΆ”κ°€ν•˜λŠ” 보닀 정식적인 방법이 μžˆλŠ”μ§€ κΆκΈˆν•©λ‹ˆλ‹€.

λͺ¨λ“  29 λŒ“κΈ€

이것은 μ‹œμŠ€ν…œ(PowerShell)μ—μ„œ 무엇을 μ˜λ―Έν•©λ‹ˆκΉŒ?

python -m pip freeze | select-string cython

@dolang 라고
'select-string'은 λ‚΄λΆ€ λ˜λŠ” μ™ΈλΆ€ λͺ…λ ΉμœΌλ‘œ μΈμ‹λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
μ‹€ν–‰ κ°€λŠ₯ν•œ ν”„λ‘œκ·Έλž¨ λ˜λŠ” 배치 파일.

예, λͺ…ν™•ν•˜μ§€ μ•Šμ€ 점 μ£„μ†‘ν•©λ‹ˆλ‹€. PowerShellμ—μ„œ μ‹€ν–‰ν•΄μ•Ό ν•©λ‹ˆλ‹€. DOS ν”„λ‘¬ν”„νŠΈλ₯Ό λŒ€μ²΄ν•©λ‹ˆλ‹€.

Win + x λ₯Ό μ‚¬μš©ν•œ λ‹€μŒ μ„ νƒν•˜κ±°λ‚˜ λͺ…λ Ή ν”„λ‘¬ν”„νŠΈμ—μ„œ powershell λ₯Ό μž…λ ₯ν•©λ‹ˆλ‹€. ν”„λ‘¬ν”„νŠΈμ˜ 처음 두 κΈ€μžλ‘œ PS κ°€ μžˆμŠ΅λ‹ˆλ‹€.

μ•„, κ·Έλž˜μš”. powershellμ—λŠ” λ‹€μŒκ³Ό 같이 λ‚˜μ™€ μžˆμŠ΅λ‹ˆλ‹€.

Cython==0.27.3

μ’‹μ•„, 운이 없이 λΉ„μŠ·ν•˜μ§€ μ•Šμ€ ν™˜κ²½μ—μ„œ μž¬ν˜„ν•΄ λ³΄μ•˜λ‹€. 기본적으둜 였λ₯˜κ°€ λ§ν•˜λŠ” 것은 sdl2 λΌμ΄λΈŒλŸ¬λ¦¬κ°€ μ—†λ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. ν•˜μ§€λ§Œ μ›λž˜ μ„€λͺ… μ–΄λ”˜κ°€μ— μžˆλŠ” python -m pip install kivy.deps.sdl2 와 ν•¨κ»˜ μ„€μΉ˜ν–ˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.

이것을 λ‹€λ₯Έ μ»΄ν“¨ν„°μ—μ„œ λ‹€μ‹œ μž¬ν˜„ν•΄μ•Ό ν•©λ‹ˆλ‹€. κ·Έ λ™μ•ˆ pip uninstall ... + pip install ... ν•΄λ‹Ή 쒅속성을 μ‹œλ„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ§€κΈˆ λ‹€λ₯Έ μ»΄ν“¨ν„°μ—μ„œ μ‹œλ„ν–ˆμ§€λ§Œ λ™μΌν•œ κ²°κ³Όλ₯Ό μ–»μ—ˆμŠ΅λ‹ˆλ‹€(즉, μ—¬κΈ°μ—μ„œ μž‘λ™ν•¨). 무엇을 μœ„ν•΄ 가지고 μžˆμŠ΅λ‹ˆκΉŒ?

PS  C:\> python -m pip freeze | select-string sdl2

그것은 λ‹Ήμ‹ μ—κ²Œ kivy.deps.sdl2==0.1.17 λ₯Ό 쀄 κ²ƒμž…λ‹ˆλ‹€.

λ˜λŠ” μ—¬λŸ¬ Python 인터프리터가 μ„€μΉ˜λœ 경우:

PS  C:\> py -3.6 -m pip freeze | select-string sdl2

이 두 λͺ…λ Ή 쀑 ν•˜λ‚˜κ°€ μœ„μ˜ 좜λ ₯을 μ œκ³΅ν•˜μ§€ μ•ŠμœΌλ©΄ kivy.deps.sdl2 λ‹€μ‹œ μ„€μΉ˜ν•΄ λ³΄μ‹­μ‹œμ˜€.

μž‘λ™ν•˜μ§€λ§Œ μž‘λ™ν•˜μ§€ μ•ŠμœΌλ©΄ λ‹€μŒμ„ λΆ™μ—¬λ„£μœΌμ‹­μ‹œμ˜€.

PS C:\> dir C:\Users\dev.DoddJ\AppData\Local\Programs\Python\Python36-32\share\sdl2\bin

64λΉ„νŠΈ Python 인터프리터λ₯Ό λ‹€μ‹œ μ„€μΉ˜ν•΄μ•Ό ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. (좔츑일 뿐 아직 ν™•μ‹€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.)

λ‚˜λŠ” κ·Έλ ‡κ²Œν–ˆκ³ 

kivy.deps.sdl2==0.1.17 κ°€μ Έμ˜€κΈ°

32λΉ„νŠΈλ₯Ό μ œκ±°ν•˜κ³  κ·Έ μžλ¦¬μ— 64λΉ„νŠΈ Python을 μ„€μΉ˜ν–ˆμ§€λ§Œ μ—¬μ „νžˆ 이 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

H:\untitled2\Scripts\python.exe "C:/Users/DoddJ/PycharmProjects/untitled/KIVY TEST.py"
[INFO   ] [Logger      ] Record log in C:\Users\DoddJ\.kivy\logs\kivy_18-03-28_40.txt
[INFO   ] [Kivy        ] v1.10.0
[INFO   ] [Python      ] v3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:54:40) [MSC v.1900 64 bit (AMD64)]
[INFO   ] [Factory     ] 194 symbols loaded
[INFO   ] [Image       ] Providers: img_tex, img_dds, img_pil, img_gif (img_sdl2, img_ffpyplayer ignored)
[INFO   ] [Text        ] Provider: pil(['text_sdl2'] ignored)
[CRITICAL] [Window      ] Unable to find any valuable Window provider.

[CRITICAL] [App         ] Unable to get a Window, abort.
 Exception ignored in: 'kivy.properties.dpi2px'
 Traceback (most recent call last):
   File "C:\Users\dev.DoddJ\AppData\Local\Programs\Python\Python36\lib\site-packages\kivy\utils.py", line 496, in __get__
     retval = self.func(inst)
   File "C:\Users\dev.DoddJ\AppData\Local\Programs\Python\Python36\lib\site-packages\kivy\metrics.py", line 174, in dpi
     EventLoop.ensure_window()
   File "C:\Users\dev.DoddJ\AppData\Local\Programs\Python\Python36\lib\site-packages\kivy\base.py", line 127, in ensure_window
     sys.exit(1)
 SystemExit: 1
[CRITICAL] [App         ] Unable to get a Window, abort.

Process finished with exit code 1

κΈ€μŽ„, λ‚˜λŠ” 32/64-bitκ°€ μ—¬κΈ°μ„œ λ¬Έμ œκ°€ 될 수 μžˆλŠ”μ§€ ν™•μ‹ ν•  수 μ—†μ—ˆλ‹€. ν•˜μ§€λ§Œ .dll 이 μ‹€μ œλ‘œ 거기에 μžˆλŠ”μ§€ 확인할 수 μžˆμŠ΅λ‹ˆκΉŒ?

PS C:\> dir C:\Users\dev.DoddJ\AppData\Local\Programs\Python\Python36\share\sdl2\bin

μ‘΄μž¬ν•œλ‹€λ©΄ λ°”μ΄λŸ¬μŠ€ μŠ€μΊλ„ˆκ°€ 그것을 μ°¨λ‹¨ν•˜κ³  μžˆκ±°λ‚˜ λ°©ν™”λ²½(λ˜λŠ” λ‹€λ₯Έ μΉ¨μž… μ†Œν”„νŠΈμ›¨μ–΄)이 μ°¨λ‹¨ν•˜κ³  μžˆμŠ΅λ‹ˆκΉŒ? 이런 일이 μžˆμ–΄μ„œλŠ” μ•ˆ λ©λ‹ˆλ‹€, μž„ν˜Έ.

νŽΈμ§‘: λ‚΄ μ„€μΉ˜λ₯Ό λ‹€μ‹œ μ‚΄νŽ΄λ³΄κ³  Process Hackerμ—μ„œ μ‹€ν–‰ 쀑인 μ‘μš© ν”„λ‘œκ·Έλž¨μ„ μ—΄μ—ˆμŠ΅λ‹ˆλ‹€. 이 SDL2.dll은 PyPI용으둜 맞좀 μ œμž‘λ˜μ—ˆμœΌλ©° μ„œλͺ…λ˜μ§€ μ•Šμ€ κ²ƒμ²˜λŸΌ λ³΄μž…λ‹ˆλ‹€. Windows μ •μ±… 섀정에 따라 이둜 인해 μžλ™μœΌλ‘œ 차단될 수 μžˆμŠ΅λ‹ˆλ‹€. λ‹€μŒμ΄ 도움이 λ κΉŒμš”?

Windows 10: Windows 10μ—μ„œ 파일 차단 ν•΄μ œ

이전 μ˜κ²¬μ— λ”°λ₯΄λ©΄ cython 0.27.3이 있고 μ½˜μ†” λ‘œκ·Έμ— Kivy v1.10.0이 ν‘œμ‹œλ©λ‹ˆλ‹€... ν•΄λ‹Ή 버전은 ν˜Έν™˜λ˜μ§€ μ•Šμ§€λ§Œ λˆ„λ½λœ μ°½ κ³΅κΈ‰μžκ°€ 이 문제의 첫 번째 λ‹¨μ„œμΈ μ΄μœ λŠ” μ •ν™•νžˆ λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€. .. cython 0.25.2(1.10κ³Ό ν˜Έν™˜) + kivyλ₯Ό λ‹€μ‹œ μ„€μΉ˜ν•˜κ±°λ‚˜ ν˜„μž¬ cython 버전과 ν•¨κ»˜ pip install kivy==master λ₯Ό μ‚¬μš©ν•΄ λ³΄μ‹­μ‹œμ˜€.

Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)] on win32 μ—μ„œλ„ 이 λ¬Έμ œκ°€ λ°œμƒν•©λ‹ˆλ‹€.

````
C:> python3 -m pip kivy kivy.deps.glew kivy.deps.sdl2 ν‘œμ‹œ
이름: ν‚€λΉ„
버전: 1.10.0
μš”μ•½: ν•˜λ“œμ›¨μ–΄ 가속 λ©€ν‹°ν„°μΉ˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ‹ μ†ν•œ κ°œλ°œμ„ μœ„ν•œ μ†Œν”„νŠΈμ›¨μ–΄ 라이브러리.
ν™ˆνŽ˜μ΄μ§€: http://kivy.org
μž‘μ„±μž: Kivy Team 및 기타 κΈ°μ—¬μž
μž‘μ„±μž-이메일: [email protected]
λΌμ΄μ„ΌμŠ€: MIT
μœ„μΉ˜: c:\users\jedingtoappdata\roaming\python\python36\site-packages
ν•„μš”: docutils, Kivy-Garden, pygments

μš”μ²­μž:

이름: kivy.deps.glew
버전: 0.1.9
μš”μ•½: Kivy의 μž¬νŒ¨ν‚€μ§€λœ λ°”μ΄λ„ˆλ¦¬ 쒅속성.
ν™ˆνŽ˜μ΄μ§€: http://kivy.org/
μ €μž: ν‚€λΉ„ 크루
μž‘μ„±μž-이메일: [email protected]
λΌμ΄μ„ΌμŠ€: MIT
μœ„μΉ˜: c:\users\jedingtoappdata\roaming\python\python36\site-packages
μš”κ΅¬ 사항:

μš”μ²­μž:

이름: kivy.deps.sdl2
버전: 0.1.17
μš”μ•½: Kivy의 μž¬νŒ¨ν‚€μ§€λœ λ°”μ΄λ„ˆλ¦¬ 쒅속성.
ν™ˆνŽ˜μ΄μ§€: http://kivy.org/
μ €μž: ν‚€λΉ„ 크루
μž‘μ„±μž-이메일: [email protected]
λΌμ΄μ„ΌμŠ€: zlib
μœ„μΉ˜: c:\users\jedingtoappdata\roaming\python\python36\site-packages
μš”κ΅¬ 사항:
μš”μ²­μž:
````

μ‹€ν–‰ν•˜λ©΄ λ‹€μŒμ΄ μ œκ³΅λ©λ‹ˆλ‹€.

````
Python 3.6.5(v3.6.5:f59c0932b4, 2018λ…„ 3μ›” 28일, 17:00:18) [MSC v.1900 64λΉ„νŠΈ(AMD64)] on win32
μžμ„Έν•œ λ‚΄μš©μ„ 보렀면 "도움말", "μ €μž‘κΆŒ", "ν¬λ ˆλ”§" λ˜λŠ” "λΌμ΄μ„ΌμŠ€"λ₯Ό μž…λ ₯ν•˜μ‹­μ‹œμ˜€.

kivy.app κ°€μ Έμ˜€κΈ° μ•±μ—μ„œ
[INFO ] [Logger ] C:\Users\jedingto.kivy\logs\kivy_18-05-17_4.txt에 둜그인 기둝
[정보] [ν‚€λΉ„] v1.10.0
[정보] [파이썬] v3.6.5 (v3.6.5:f59c0932b4, 2018λ…„ 3μ›” 28일, 17:00:18) [MSC v.1900 64λΉ„νŠΈ(AMD64)]
[정보] [곡μž₯] 194개의 κΈ°ν˜Έκ°€ λ‘œλ“œλ¨
[정보] [이미지] κ³΅κΈ‰μž: img_tex, img_dds, img_gif (img_sdl2, img_pil, img_ffpyplayer λ¬΄μ‹œ)
kivy.uix.widget κ°€μ Έμ˜€κΈ° μœ„μ ―μ—μ„œ
클래슀 PongGame(μœ„μ ―):
... ν†΅κ³Όν•˜λ‹€
...
클래슀 PongApp(μ•±):
... def λΉŒλ“œ(자체):
... PongGame() λ°˜ν™˜
...
퐁앱().run()
[μ€‘μš”] [μ°½] κ°€μΉ˜ μžˆλŠ” μ°½ κ³΅κΈ‰μžλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
sdl2 - ImportError: DLL λ‘œλ“œ μ‹€νŒ¨: μ§€μ •λœ λͺ¨λ“ˆμ„ 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
core_select_lib의 "C:\Users\jedingtoAppData\Roaming\Python\Python36\site-packages\kivy\core__init__.py" 파일, 59ν–‰
fromlist=[λͺ¨λ“ˆ 이름], 레벨=0)
파일 "C:\Users\jedingtoAppData\Roaming\Python\Python36\site-packages\kivy\core\window\window_sdl2.py", 26ν–‰,
kivy.core.window._window_sdl2μ—μ„œ _WindowSDL2Storage κ°€μ Έμ˜€κΈ°

[μ€‘μš”] [μ•± ] 창을 κ°€μ Έμ˜¬ 수 μ—†μŠ΅λ‹ˆλ‹€. μ€‘λ‹¨ν•˜μ‹­μ‹œμ˜€.
````

SDL2 DLL이 μžˆμŒμ—λ„ λΆˆκ΅¬ν•˜κ³ :

````
디렉토리 %AppData%\Python\sharesdl2\bin\SDL2.dll
C λ“œλΌμ΄λΈŒμ˜ λ³Όλ₯¨μ€ XXXXXXμž…λ‹ˆλ‹€.
λ³Όλ₯¨ 일련 λ²ˆν˜ΈλŠ” 0000-0000μž…λ‹ˆλ‹€.

C:\Users\USERAppData\Roaming\Python\sharesdl2\bin 디렉토리

2018-05-17 11:33 AM 1,254,400 SDL2.dll
1 파일 1,254,400λ°”μ΄νŠΈ
0 디렉터리 161,199,689,728λ°”μ΄νŠΈ μ—¬μœ  곡간
````

--user kivy.deps.sdl λ₯Ό μ œκ±°ν•˜κ³  κ΄€λ¦¬μž λͺ¨λ“œλ₯Ό 톡해 C:\Program Files\Python\share\sdl2 에 μ„€μΉ˜ν•΄λ„ 였λ₯˜κ°€ λ°œμƒν•œλ‹€κ³  μΆ”κ°€ν•΄μ•Ό ν•©λ‹ˆλ‹€.

````

퐁앱().run()
[μ€‘μš”] [μ°½] κ°€μΉ˜ μžˆλŠ” μ°½ κ³΅κΈ‰μžλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
sdl2 - ImportError: DLL λ‘œλ“œ μ‹€νŒ¨: μ§€μ •λœ λͺ¨λ“ˆμ„ 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
core_select_lib의 "C:\Users\jedingtoAppData\Roaming\Python\Python36\site-packages\kivy\core__init__.py" 파일, 59ν–‰
fromlist=[λͺ¨λ“ˆ 이름], 레벨=0)
파일 "C:\Users\jedingtoAppData\Roaming\Python\Python36\site-packages\kivy\core\window\window_sdl2.py", 26ν–‰,
kivy.core.window._window_sdl2μ—μ„œ _WindowSDL2Storage κ°€μ Έμ˜€κΈ°

[μ€‘μš”] [μ•± ] 창을 κ°€μ Έμ˜¬ 수 μ—†μŠ΅λ‹ˆλ‹€. μ€‘λ‹¨ν•˜μ‹­μ‹œμ˜€.

````

python3 $λ₯Ό μ‹€ν–‰ν•˜κΈ° 전에 SDL2.dll μ˜†μ— μžˆλŠ” λ””λ ‰ν† λ¦¬λ‘œ cd λ₯Ό μž…λ ₯해도 μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

μ’‹μŠ΅λ‹ˆλ‹€. μ—¬κΈ°μ—λŠ” μ—¬λŸ¬ 가지가 μžˆμŠ΅λ‹ˆλ‹€.

  1. .dll λŠ” ν•΄λ‹Ή 디렉토리에 μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.
  2. ...\site-packages\kivy\deps\sdl2\__init__.py 파일이 λ‘œλ“œλ˜κ³  .dll λ₯Ό κ°€λ¦¬ν‚΅λ‹ˆλ‹€.
  3. Windows(λ˜λŠ” 일뢀 λ°”μ΄λŸ¬μŠ€ μŠ€μΊλ„ˆμ™€ 같은 λ‹€λ₯Έ μΉ¨μž… μ†Œν”„νŠΈμ›¨μ–΄) μžμ²΄λŠ” λ‘œλ“œλ₯Ό μ°¨λ‹¨ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

μ§€κΈˆκΉŒμ§€λŠ” μž¬ν˜„ν•  수 μ—†μ—ˆμ§€λ§Œ 3. λ°°μ œν•  수 μ—†λŠ” κ²ƒμž…λ‹ˆλ‹€.

μ‹œλ„ν•΄ λ³Ό 수 μžˆλŠ” 또 λ‹€λ₯Έ 방법은 λͺ…λ Ή ν”„λ‘¬ν”„νŠΈλ₯Ό μ—΄κ³  sdl2 ν΄λ”μ—μ„œ 직접 PATHλ₯Ό κ°€λ¦¬ν‚΅λ‹ˆλ‹€. λ‹€μŒκ³Ό 같은 것:

\> set PATH=C:\Users\USER\AppData\Roaming\Python\share\sdl2\bin;%PATH%

@dolang κΈ€μŽ„, SDL2.dll 폴더λ₯Ό %PATH% 에 μΆ”κ°€ν•˜λ©΄ ν•΄λ‹Ή 였λ₯˜μ˜ 일뢀가 μˆ˜μ •λ˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. img_sdl2 λŠ” 이제 더 이상 "λ¬΄μ‹œ"λ˜μ§€ μ•Šμ§€λ§Œ μ—¬μ „νžˆ "κ°€μΉ˜ μžˆλŠ” μ°½ κ³΅κΈ‰μžλ₯Ό 찾을 수 μ—†μŒ"μž…λ‹ˆλ‹€. 그것은 λ˜ν•œ μ•½κ°„ λ‹€λ₯Έ(거의 λ…μ μ μœΌλ‘œ ν™•μž₯된?) 였λ₯˜ λ©”μ‹œμ§€λ₯Ό μ œκ³΅ν–ˆμŠ΅λ‹ˆλ‹€.

[INFO ] [Logger ] Record log in C:\Users\jedingto\.kivy\logs\kivy_18-05-17_15.txt [INFO ] [Kivy ] v1.10.0 [INFO ] [Python ] v3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)] [INFO ] [Factory ] 194 symbols loaded [INFO ] [Image ] Providers: img_tex, img_dds, img_sdl2, img_gif (img_pil, img_ffpyplayer ignored) [INFO ] [OSC ] using <thread> for socket [INFO ] [Window ] Provider: sdl2 [CRITICAL] [Window ] Unable to find any valuable Window provider. sdl2 - ImportError: DLL load failed: The specified module could not be found. File "C:\Users\jedingto\AppData\Roaming\Python\Python36\site-packages\kivy\core\__init__.py", line 67, in core_select_lib cls = cls() File "C:\Users\jedingto\AppData\Roaming\Python\Python36\site-packages\kivy\core\window\window_sdl2.py", line 140, in __init__ super(WindowSDL, self).__init__() File "C:\Users\jedingto\AppData\Roaming\Python\Python36\site-packages\kivy\core\window\__init__.py", line 899, in __init__ self.create_window() File "C:\Users\jedingto\AppData\Roaming\Python\Python36\site-packages\kivy\core\window\window_sdl2.py", line 269, in create_window self.fullscreen, resizable, state) File "kivy\core\window\_window_sdl2.pyx", line 110, in kivy.core.window._window_sdl2._WindowSDL2Storage.setup_window (kivy\core/window\_window_sdl2.c:2466) File "kivy\graphics\cgl.pyx", line 52, in kivy.graphics.cgl.cgl_get_backend_name (kivy\graphics\cgl.c:3044) File "kivy\graphics\cgl.pyx", line 60, in kivy.graphics.cgl.cgl_get_backend_name (kivy\graphics\cgl.c:2879) File "C:\Program Files\Python36\lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 994, in _gcd_import File "<frozen importlib._bootstrap>", line 971, in _find_and_load File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 658, in _load_unlocked File "<frozen importlib._bootstrap>", line 571, in module_from_spec File "<frozen importlib._bootstrap_external>", line 922, in create_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed

"λ¬΄μ‹œλ¨" μ„Ήμ…˜μ— img_sdl2 κ°€ μžˆλŠ”μ§€ 여뢀와 SDL2λ₯Ό 찾을 수 μžˆλŠ”μ§€ 여뢀에 따라 ν™•μž₯된 였λ₯˜ ν…μŠ€νŠΈκ°€ λ‚˜νƒ€λ‚˜κ±°λ‚˜ μ‚¬λΌμ§€λŠ” 것을 PATHμ—μ„œ 반볡적으둜 μΆ”κ°€ 및 μ œκ±°ν•˜μ—¬ ν™•μΈν–ˆμŠ΅λ‹ˆλ‹€.

이제 glew 쒅속성 λ°”λ‘œ μ˜†μ— 폴더가 μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€( share\glew\bin ). 그것도 μΆ”κ°€ν•˜λ©΄ μ–΄λ–»κ²Œ λ κΉŒμš”?

μ•„ν•˜!

λ”°λΌμ„œ Windowsμ—μ„œλŠ” %AppData%\Python\share\glew\bin;%AppData%\Python\share\sdl2\bin; λ₯Ό PATH μ•žμ— μΆ”κ°€ν•˜μ—¬ "ν•΄κ²°"ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

cmd /C "PATH=%AppData%\Python\share\glew\bin;%AppData%\Python\share\sdl2\bin;%PATH% && python3 -c ^"from kivy.core.window._window_sdl2 import _WindowSDL2Storage^""

κ·ΈλŸ¬λ‚˜ λΆˆν–‰νžˆλ„ 이것은 κ·Έ 자체둜 해결책이 μ•„λ‹™λ‹ˆλ‹€

pip-installed-python-librariesκ°€ μž‘λ™ν•˜κΈ° μœ„ν•΄ μžˆμ–΄μ•Ό ν•˜λŠ” PATH 에 μ–΄λ–»κ²Œ λ“€μ–΄κ°€μ•Ό ν•©λ‹ˆκΉŒ? (μž¬λΆ€νŒ…μ΄ μΆ©λΆ„ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€)

그것은 λΌμ΄λΈŒλŸ¬λ¦¬κ°€ μ‹€μ œλ‘œ μ°¨λ‹¨λ˜μ—ˆλŠ”μ§€ μ—¬λΆ€λ₯Ό μ•Œμ•„λ‚΄κΈ° μœ„ν•œ λ‹¨μ„œμ— λΆˆκ³Όν–ˆμŠ΅λ‹ˆλ‹€. 그듀이 μ•„λ‹ˆλΌ λ‹€ν–‰μž…λ‹ˆλ‹€.

μœ„μ—μ„œ λ§ν–ˆλ“―μ΄(μš”μ  2.) __init__.py in site-packages\kivy\deps\... 을 μ—΄λ©΄ 기본적으둜 μž‘λ™ν•΄μ•Ό 함을 μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€. 이제 λ‚˜λŠ” λ‹Ήμ‹ μ˜ 경우처럼 μ •ν™•νžˆ λ‚΄ 것을 λΆ€μˆ˜λŠ” 방법을 μ°Ύμ•„μ•Όν•©λ‹ˆλ‹€. :웃닀:

이게 μ†Œμš©μ΄ μžˆλ‚˜μš”?

````

κ°€μ Έμ˜€κΈ° pdb
pdb.run()
ν‚€λ³΄λ“œ μΈν„°λŸ½νŠΈ
μ–‘κ³ κΈ°
ν‚€λ³΄λ“œ μΈν„°λŸ½νŠΈ
pdb.run("kivy.core.window._window_sdl2μ—μ„œ _WindowSDL2Storage κ°€μ Έμ˜€κΈ°")
(1)()
(Pdb) s
--λΆ€λ₯΄λ‹€--
(966)_find_and_load()
(PDB)
(968)_find_and_load()
(PDB)
--λΆ€λ₯΄λ‹€--
(143)__μ΄ˆκΈ°ν™”__()
(PDB)
(144)__μ΄ˆκΈ°ν™”__()
(PDB)
(145)__μ΄ˆκΈ°ν™”__()
(PDB)
--λ°˜ν’ˆ--
(145)__init__()->μ—†μŒ
(PDB)
--λΆ€λ₯΄λ‹€--
(147)__enter__()
(PDB)
(148)__enter__()
(PDB)
--λΆ€λ₯΄λ‹€--
(157)_get_module_lock()
(PDB)
(163)_get_module_lock()
(PDB)
(164)_get_module_lock()
(PDB)
(165)_get_module_lock()
(PDB)
(166)_get_module_lock()
(PDB)
ν‚€ 였λ₯˜: 'kivy.core.window._window_sdl2'
(166)_get_module_lock()
(PDB)
(167)_get_module_lock()
(PDB)
(168)_get_module_lock()
(PDB)
(170)_get_module_lock()
(PDB)
(171)_get_module_lock()
(PDB)
(174)_get_module_lock()
(PDB)
--λΆ€λ₯΄λ‹€--
(58)__μ΄ˆκΈ°ν™”__()
(PDB)
(59)__μ΄ˆκΈ°ν™”__()
(PDB)
(60)__μ΄ˆκΈ°ν™”__()
(PDB)
(61)__초기__()
(PDB)
(62)__초기__()
(PDB)
(63)__초기__()
(PDB)
(64)__초기__()
(PDB)
--λ°˜ν’ˆ--
(64)__init__()->μ—†μŒ
(PDB)
(176)_get_module_lock()
(PDB)
(187)_get_module_lock()
(PDB)
(189)_get_module_lock()
(PDB)
(191)_get_module_lock()
(PDB)
--λ°˜ν’ˆ--
(191)_get_module_lock()->_ModuleLock('... 1869402554208
(PDB)
(149)__enter__()
(PDB)
--λΆ€λ₯΄λ‹€--
(78)νšλ“()
(PDB)
(84)νšλ“()
(PDB)
(85)νšλ“()
(PDB)
(86)νšλ“()
(PDB)
(87)νšλ“()
(PDB)
(88)νšλ“()
(PDB)
(89)νšλ“()
(PDB)
(90)νšλ“()
(PDB)
(91)νšλ“()
(PDB)
(92)νšλ“()
(PDB)
(101)νšλ“()
(PDB)
ν‚€ 였λ₯˜: 12616
(101)νšλ“()
(PDB)
--λ°˜ν’ˆ--
(101)νšλ“()->μ—†μŒ
(PDB)
ν‚€ 였λ₯˜: 12616
(149)__enter__()
(PDB)
--λ°˜ν’ˆ--
(149)__enter__()->μ—†μŒ
(PDB)
ν‚€ 였λ₯˜: 12616
(968)_find_and_load()
(PDB)
--λ°˜ν’ˆ--
(968)_find_and_load()->μ—†μŒ
(PDB)
ν‚€ 였λ₯˜: 12616
(1)()
(PDB)
--λ°˜ν’ˆ--
(1)()->μ—†μŒ
(PDB)
ν‚€ 였λ₯˜: 12616
c:\program filespython36\lib\bdb.py(434)run()
-> exec(cmd, μ „μ—­, 지역)
(PDB)
c:\program filespython36\lib\bdb.py(435)run()
-> BdbQuit μ œμ™Έ:
(PDB)
c:\program filespython36\lib\bdb.py(438)run()
-> self.quitting = 사싀
(PDB)
역좔적(κ°€μž₯ 졜근 호좜 λ§ˆμ§€λ§‰):
파일 "", 1ν–‰, μ—μ„œ
파일 "C:\Program Files\Python36\lib\pdb.py", 라인 1572, μ‹€ν–‰ 쀑
Pdb().run(λ¬Έ, μ „μ—­, 지역)
파일 "C:\Program Files\Python36\lib\bdb.py", 라인 434, μ‹€ν–‰ 쀑
exec(cmd, μ „μ—­, 지역)
파일 "", 1ν–‰, μ—μ„œ
파일 "", 968ν–‰, _find_and_load
파일 "", 149ν–‰, __enter__
파일 "", 101ν–‰, 인수 쀑
ν‚€ 였λ₯˜: 12616
````

잘,

μΆ”κ°€ ν…ŒμŠ€νŠΈ κ²°κ³Ό kivy.deps.glew 및 kivy.deps.sdl2 κ°€ λͺ¨λ‘ κ΄€λ¦¬μž λͺ¨λ“œμ— μ„€μΉ˜λœ 경우 μ˜¬λ°”λ₯΄κ²Œ μž‘λ™ν•˜λŠ” κ²ƒμœΌλ‘œ λ‚˜νƒ€λ‚¬μŠ΅λ‹ˆλ‹€.

λ¬Έμ œλŠ” λ„ˆλ¬΄ 많이 site-packages\kivy\deps\*\__init__.py 둜 ν•˜λ“œμ½”λ”©λ˜λŠ” 데 μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

Pip νŒ¨ν‚€μ§€μ˜ DLL을 PATH ...에 μΆ”κ°€ν•˜λŠ” 보닀 정식적인 방법이 μžˆλŠ”μ§€ κΆκΈˆν•©λ‹ˆλ‹€.

쒋은 μ§ˆλ¬Έμ΄μ§€λ§Œ νŒ€μ΄ ν˜„μž¬ μ†”λ£¨μ…˜μ— μ–΄λ–»κ²Œ λ„λ‹¬ν–ˆλŠ”μ§€ λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€. 적어도 μ§€κΈˆμ€ λ²”μœ„λ₯Ό 쒁힐 수 μžˆμœΌλ―€λ‘œ ν•œ 걸음 더 λ‚˜μ•„κ°„ κ²ƒμž…λ‹ˆλ‹€.

그건 κ·Έλ ‡κ³ , 당신은 virtualenv 에 μ΅μˆ™ν•©λ‹ˆκΉŒ? λ‚˜λŠ” 일반적으둜 그것듀을 μ‚¬μš©ν•˜κ³  거의 λ¬Έμ œκ°€ μ—†μŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ μ§€κΈˆμ€ (κ΄€λ¦¬μž)λ₯Ό ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

py -m pip install virtualenv

일반 μ‚¬μš©μž 계정( .venv 은 λ‚΄κ°€ μ„ ν˜Έν•˜λŠ” virtualenv 디렉토리 μ΄λ¦„μž…λ‹ˆλ‹€. μ›ν•˜λŠ” λŒ€λ‘œ λ³€κ²½):

py -m virtualenv .venv
.venv\Scripts\activate
python -m pip install docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew
python -m pip install kivy

μ„ νƒμ μœΌλ‘œ μΆ”κ°€: python -m pip install kivy.deps.gstreamer

잘 됐으면 μ’‹κ² μŠ΅λ‹ˆλ‹€.

ꡬ성 μ°½ 10 python 363(λΉ„μ£Όμ–Ό μŠ€νŠœλ””μ˜€ 2017):

[INFO   ] [Logger      ] Record log in C:\Users\Laurent\.kivy\logs\kivy_18-08-23_29.txt
[INFO   ] [Kivy        ] v1.10.1
[INFO   ] [Python      ] v3.6.3 (v3.6.3:2c5fed8, Oct  3 2017, 18:11:49) [MSC v.1900 64 bit (AMD64)]
[INFO   ] [Factory     ] 194 symbols loaded
[INFO   ] [Image       ] Providers: img_tex, img_dds, img_sdl2, img_pil, img_gif (img_ffpyplayer ignored)
[INFO   ] [Window      ] Provider: sdl2
[INFO   ] [GL          ] Using the "OpenGL" graphics system
[INFO   ] [GL          ] GLEW initialization succeeded
[INFO   ] [GL          ] Backend used <glew>
[INFO   ] [GL          ] OpenGL version <b'4.6.0 NVIDIA 390.77'>
[INFO   ] [GL          ] OpenGL vendor <b'NVIDIA Corporation'>
[INFO   ] [GL          ] OpenGL renderer <b'GeForce GTX 970/PCIe/SSE2'>
[INFO   ] [GL          ] OpenGL parsed version: 4, 6
[INFO   ] [GL          ] Shading version <b'4.60 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   ] [Text        ] Provider: sdl2
Standard library module invoked user code during import; breakpoints disabled for invoked code.
[INFO   ] [Base        ] Start application main loop
[INFO   ] [GL          ] NPOT texture support is available
[WARNING] [Accordion   ] not enough space for displaying all children
[WARNING] [Accordion   ] need 132px, got 84px
[WARNING] [Accordion   ] layout aborted.
[WARNING] [Accordion   ] not enough space for displaying all children
[WARNING] [Accordion   ] need 132px, got 84px
[WARNING] [Accordion   ] layout aborted.
[INFO   ] [Base        ] Leaving application in progress...
The thread 'MainThread' (0x13ec) has exited with code 0 (0x0).

λ‚˜λŠ” 같은 λ¬Έμ œκ°€ 있고 그것을 ν•΄κ²°ν•˜κ³  λ‚΄ μ†”λ£¨μ…˜μ€ 쒋은 것이 μ•„λ‹™λ‹ˆλ‹€. μ €μž₯μ†Œμ˜ λͺ¨λ“  dll(share/sdl2 share/angle share/glew share/gstreamer)을 λ³΅μ‚¬ν•˜κ³  이 μ €μž₯μ†Œλ₯Ό 경둜 λ³€μˆ˜μ— μΆ”κ°€ν•©λ‹ˆλ‹€.

κ΄€λ¦¬μž κΆŒν•œ(https://kivy.org/docs/installation/installation-windows.html)을 μ‚¬μš©ν•˜μ—¬ kivyλ₯Ό μ„€μΉ˜ν•˜κ³  μ‚¬μš©μž κΆŒν•œ(user laurent)을 μ‚¬μš©ν•˜μ—¬ μ‹€ν–‰ν•˜λ €κ³  ν•˜λ©΄ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€. [CRITICAL] [Window] Unable to find λͺ¨λ“  κ°€μΉ˜ μžˆλŠ” μ°½ 제곡자.
sdl2 - ImportError: DLL λ‘œλ“œ μ‹€νŒ¨: μ§€μ •λœ λͺ¨λ“ˆμ„ 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.

μƒˆ ν΄λ”μ˜ λͺ¨λ“  dll을 λ³΅μ‚¬ν•˜λ©΄ λ¬Έμ œκ°€ ν•΄κ²°λ©λ‹ˆλ‹€. 제 μ§ˆλ¬Έμ€ kivyλ₯Ό μ–΄λ–»κ²Œ μ„€μΉ˜ν•˜μ—¬ μ‚¬μš©μž κΆŒν•œμœΌλ‘œ kivyλ₯Ό μ‹€ν–‰ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

PS μ£„μ†‘ν•©λ‹ˆλ‹€ μ €λŠ” μ˜μ–΄μ™€ νŒŒμ΄μ¬μ„ μž˜ν•˜μ§€ λͺ»ν•©λ‹ˆλ‹€

그건 κ·Έλ ‡κ³ , 당신은 virtualenv 에 μ΅μˆ™ν•©λ‹ˆκΉŒ? λ‚˜λŠ” 일반적으둜 그것듀을 μ‚¬μš©ν•˜κ³  거의 λ¬Έμ œκ°€ μ—†μŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ μ§€κΈˆμ€ (κ΄€λ¦¬μž)λ₯Ό ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

py -m pip install virtualenv

일반 μ‚¬μš©μž 계정( .venv 은 λ‚΄κ°€ μ„ ν˜Έν•˜λŠ” virtualenv 디렉토리 μ΄λ¦„μž…λ‹ˆλ‹€. μ›ν•˜λŠ” λŒ€λ‘œ λ³€κ²½):

py -m virtualenv .venv
.venv\Scripts\activate
python -m pip install docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew
python -m pip install kivy

virtualenvλ₯Ό μ‚¬μš©ν•΄ λ³΄μ•˜μ§€λ§Œ μž‘λ™ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. μ—¬μ „νžˆ λΉ„μŠ·ν•œ 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ C:\Program Files\Python37\share\sdl2\bin 및 C:\Program Files\Python37\share\angle\bin λ₯Ό 이미 PATH에 μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€. 그리고 μ €λŠ” @LaurentBerger κ°€ ν–ˆλ‹€κ³  μƒκ°ν•˜λŠ” λŒ€λ‘œ 두 νŒŒμΌμ„ λ‹€λ₯Έ 디렉토리에 λ³΅μ‚¬ν•œ λ‹€μŒ ν•΄λ‹Ή 디렉토리λ₯Ό κ²½λ‘œμ— μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€. 두 개의 PATH μ˜΅μ…˜κ³Ό ν•¨κ»˜ virtualenvλ₯Ό μ‚¬μš©ν•˜λŠ” 것도 μ €μ—κ²Œ νš¨κ³Όκ°€ μ—†μ—ˆμŠ΅λ‹ˆλ‹€.

μ €λŠ” python 3.7을 μ‚¬μš©ν•˜κ³  μžˆμœΌλ―€λ‘œ kivy.deps.glew kivy.deps.angle λ₯Ό μ„€μΉ˜ν–ˆμŠ΅λ‹ˆλ‹€.

둜그:
```(venv) C:\Users\henry\Documents\Side Projects\fps>py main.py
[INFO ] [Logger ] C:\Users\henry.kivy\logs\kivy_18-09-15_16.txt에 둜그인 기둝
[정보] [ν‚€λΉ„] v1.10.1
[정보] [파이썬] v3.7.0 (v3.7.0:1bf9cc5093, 2018λ…„ 6μ›” 27일, 04:59:51) [MSC v.1914 64λΉ„νŠΈ(AMD64)]
[정보] [곡μž₯] 194개의 κΈ°ν˜Έκ°€ λ‘œλ“œλ¨
[정보] [이미지] κ³΅κΈ‰μž: img_tex, img_dds, img_sdl2, img_gif (img_pil, img_ffpyplayer λ¬΄μ‹œ)
[정보] [ν…μŠ€νŠΈ] κ³΅κΈ‰μž: sdl2
[정보] [μ°½] κ³΅κΈ‰μž: sdl2
[μ€‘μš”] [μ°½] κ°€μΉ˜ μžˆλŠ” μ°½ κ³΅κΈ‰μžλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
sdl2 - ImportError: DLL λ‘œλ“œ μ‹€νŒ¨: μ§€μ •λœ λͺ¨λ“ˆμ„ 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
core_select_lib의 "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\site-packages\kivy\core__init__.py" 파일, 67ν–‰
cls = cls()
파일 "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\site-packages\kivy\core\window\window_sdl2.py", 140ν–‰, __init__
super(WindowsSDL, self).__init__()
파일 "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\site-packages\kivy\core\window__init__.py", 라인 968, __init__
self.create_window()
파일 "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\site-packages\kivy\core\window\window_sdl2.py", 라인 272, create_window
self.fullscreen, 크기 μ‘°μ •, μƒνƒœ)
kivy.core.window._window_sdl2._WindowSDL2Storage.setup_window의 파일 "kivy\core\window_window_sdl2.pyx", 125ν–‰
파일 "kivy\graphics\cgl.pyx", 52ν–‰, kivy.graphics.cgl.cgl_get_backend_name
파일 "kivy\graphics\cgl.pyx", 60ν–‰, kivy.graphics.cgl.cgl_get_backend_name
파일 "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\importlib__init__.py", 127ν–‰, import_module
return _bootstrap._gcd_import(이름[레벨:], νŒ¨ν‚€μ§€, 레벨)
파일 "", 1006ν–‰, _gcd_import
파일 "", 983ν–‰, _find_and_load
파일 "", 967ν–‰, _find_and_load_unlocked
파일 "", 670ν–‰, _load_unlocked
파일 "", 583ν–‰, module_from_specμ—μ„œ
파일 "", 1043ν–‰, create_moduleμ—μ„œ
파일 "", 219ν–‰, _call_with_frames_removed

[μ€‘μš”] [μ•± ] 창을 κ°€μ Έμ˜¬ 수 μ—†μŠ΅λ‹ˆλ‹€. μ€‘λ‹¨ν•˜μ‹­μ‹œμ˜€.
```

이 λ¬Έμ œμ—μ„œ λ‚˜λŠ” 라이브러리 μ•„ν‚€ν…μ²˜(64λΉ„νŠΈμ˜ Python, 32λΉ„νŠΈμ˜ SDL2)λ₯Ό ν˜Όν•©ν•˜λŠ” 것을 λ³΄μ•˜μœΌλ―€λ‘œ 이것이 첫 번째 μ€‘μ§€μž…λ‹ˆλ‹€. 그리고 예, μ•„μΉ˜λ₯Ό ν˜Όν•©ν•˜λ©΄ λΌμ΄λΈŒλŸ¬λ¦¬κ°€ μ „ν˜€ μ‚¬μš©λ˜μ§€ μ•Šκ³  Kivyκ°€ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
kivy.deps.sdl2λ₯Ό ν†΅ν•œ SDL2 μ„€μΉ˜κ°€ μž‘λ™ν•΄μ•Ό ν•©λ‹ˆλ‹€.

python 3.7을 μ‚¬μš©ν•˜κ³  μžˆλŠ”λ° 이 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€. ν‚€λΉ„ 버전은 1.10.1μž…λ‹ˆλ‹€.
μ–΄λ–»κ²Œ ν•΄κ²°ν•΄μ•Ό ν• κΉŒμš”

μ—¬κΈ° python 3.7κ³Ό λ™μΌν•˜κ³  kivy 버전은 1.10.1이고 DLL을 λ‘œλ“œν•˜κΈ° μœ„ν•΄ λͺ¨λ“  방법을 μ‹œλ„ν–ˆμ§€λ§Œ μžλΉ„λ₯Ό 보여주지 μ•ŠμŠ΅λ‹ˆλ‹€.

https://stackoverflow.com/questions/49466785/kivy-error-python-2-7-sdl2-import-error/49477111#49477111

이것은 당신이 가진 것과 같은 문제λ₯Ό ν•΄κ²°ν•©λ‹ˆλ‹€.
이것이 도움이 되기λ₯Ό λ°”λžλ‹ˆλ‹€.

λ‚˜λŠ” 같은 λ¬Έμ œκ°€ μžˆμ—ˆλ‹€. 이 μ˜μƒμ€ μ‹œκ°μž₯μ• μΈμ—κ²Œ 도움이 될 κ²ƒμž…λ‹ˆλ‹€! https://youtu.be/gt-qndBYrCQ

λ§Žμ€ λ¬Έμ œκ°€ μžˆμ—ˆμ§€λ§Œ ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€. λ‚΄κ°€ 배운 λ‚΄μš©μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€(PyCharm μ‚¬μš©).
1) Python 3.8에 Kivyλ₯Ό μ„€μΉ˜ν•  수 μ—†μŠ΅λ‹ˆλ‹€. 3.8이 있으면 3.7둜 λŒμ•„κ°€μ‹­μ‹œμ˜€.
2) λ‹€λ₯Έ μ‚¬λžŒμ΄ 사진을 κ²Œμ‹œν•œ λͺ¨λ“  νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν–ˆμŠ΅λ‹ˆλ‹€. 여기에 λ‚΄ 것을 κ²Œμ‹œν•  κ²ƒμž…λ‹ˆλ‹€. ν”„λ‘œμ νŠΈ μΈν„°ν”„λ¦¬ν„°λ‘œ μ΄λ™ν•˜μ—¬ "+" λ²„νŠΌμ„ 눌러 λͺ¨λ‘ μΆ”κ°€ν•˜μ‹­μ‹œμ˜€. μ„±κ³΅μ μœΌλ‘œ μ„€μΉ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€.
pkg1
pkg2
3) μ°½ sdl2 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. 이 짧은 λΉ„λ””μ˜€(https://www.youtube.com/watch?v=e_jv8KsYBrs&t=212s)λ₯Ό 보고(ν•˜λ‚˜λ‹˜μ˜ 좕볡이 이 μ‚¬λžŒμ—κ²Œ 있기λ₯Ό) μ‹œμŠ€ν…œ ν™˜κ²½μ—μ„œ λ‚΄ 경둜λ₯Ό λ³€κ²½ν–ˆμŠ΅λ‹ˆλ‹€.
4) 그런 λ‹€μŒ Kivy μ›Ή μ‚¬μ΄νŠΈμ—μ„œ 쒅속성을 λ‹€μ‹œ μ„€μΉ˜ν–ˆμŠ΅λ‹ˆλ‹€. 그리고 μ„±κ³΅ν–ˆμŠ΅λ‹ˆλ‹€!!!

이것이 λˆ„κ΅°κ°€λ₯Ό 돕기λ₯Ό λ°”λžλ‹ˆλ‹€ !!!!

그건 κ·Έλ ‡κ³ , 당신은 virtualenv 에 μ΅μˆ™ν•©λ‹ˆκΉŒ? λ‚˜λŠ” 일반적으둜 그것듀을 μ‚¬μš©ν•˜κ³  거의 λ¬Έμ œκ°€ μ—†μŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ μ§€κΈˆμ€ (κ΄€λ¦¬μž)λ₯Ό ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

py -m pip install virtualenv

일반 μ‚¬μš©μž 계정( .venv 은 λ‚΄κ°€ μ„ ν˜Έν•˜λŠ” virtualenv 디렉토리 μ΄λ¦„μž…λ‹ˆλ‹€. μ›ν•˜λŠ” λŒ€λ‘œ λ³€κ²½):

py -m virtualenv .venv
.venv\Scripts\activate
python -m pip install docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew
python -m pip install kivy

virtualenvλ₯Ό μ‚¬μš©ν•΄ λ³΄μ•˜μ§€λ§Œ μž‘λ™ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. μ—¬μ „νžˆ λΉ„μŠ·ν•œ 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ 이미 C:\Program Files\Python37\share\sdl2\bin 및 C:\Program Files\Python37\share\angle\bin λ₯Ό λ‚΄ PATH에 μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€. 그리고 μ €λŠ” @LaurentBerger κ°€ ν–ˆλ‹€κ³  μƒκ°ν•˜λŠ” λŒ€λ‘œ 두 νŒŒμΌμ„ λ‹€λ₯Έ 디렉토리에 λ³΅μ‚¬ν•œ λ‹€μŒ ν•΄λ‹Ή 디렉토리λ₯Ό κ²½λ‘œμ— μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€. 두 개의 PATH μ˜΅μ…˜κ³Ό ν•¨κ»˜ virtualenvλ₯Ό μ‚¬μš©ν•˜λŠ” 것도 νš¨κ³Όκ°€ μ—†μ—ˆμŠ΅λ‹ˆλ‹€.

μ €λŠ” python 3.7을 μ‚¬μš©ν•˜κ³  μžˆμœΌλ―€λ‘œ kivy.deps.glew kivy.deps.angle λ₯Ό μ„€μΉ˜ν–ˆμŠ΅λ‹ˆλ‹€.

둜그:

[INFO   ] [Logger      ] Record log in C:\Users\henry\.kivy\logs\kivy_18-09-15_16.txt
[INFO   ] [Kivy        ] v1.10.1
[INFO   ] [Python      ] v3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)]
[INFO   ] [Factory     ] 194 symbols loaded
[INFO   ] [Image       ] Providers: img_tex, img_dds, img_sdl2, img_gif (img_pil, img_ffpyplayer ignored)
[INFO   ] [Text        ] Provider: sdl2
[INFO   ] [Window      ] Provider: sdl2
[CRITICAL] [Window      ] Unable to find any valuable Window provider.
sdl2 - ImportError: DLL load failed: The specified module could not be found.
  File "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\site-packages\kivy\core\__init__.py", line 67, in core_select_lib
    cls = cls()
  File "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\site-packages\kivy\core\window\window_sdl2.py", line 140, in __init__
    super(WindowSDL, self).__init__()
  File "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\site-packages\kivy\core\window\__init__.py", line 968, in __init__
    self.create_window()
  File "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\site-packages\kivy\core\window\window_sdl2.py", line 272, in create_window
    self.fullscreen, resizable, state)
  File "kivy\core\window\_window_sdl2.pyx", line 125, in kivy.core.window._window_sdl2._WindowSDL2Storage.setup_window
  File "kivy\graphics\cgl.pyx", line 52, in kivy.graphics.cgl.cgl_get_backend_name
  File "kivy\graphics\cgl.pyx", line 60, in kivy.graphics.cgl.cgl_get_backend_name
  File "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 670, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 583, in module_from_spec
  File "<frozen importlib._bootstrap_external>", line 1043, in create_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed

[CRITICAL] [App         ] Unable to get a Window, abort.

μˆ˜λ™μœΌλ‘œ glew, sdl2 폴더 및 __init__.pyλ₯Ό ../site-packages/kivy_depsμ—μ„œ ../site-packages/kivy/deps둜 볡사해 λ³΄μ‹­μ‹œμ˜€.
그것은 λ‚˜λ₯Ό μœ„ν•΄ μΌν–ˆλ‹€

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰