Kivy: La carga de la DLL de Kivy sdl2 falló

Creado en 26 mar. 2018  ·  29Comentarios  ·  Fuente: kivy/kivy

  • Pitón: 3.6.4
  • Sistema operativo: Windows 10
  • Kivy: 1.10.0
  • Método de instalación Kivy:
    python -m pip install --actualizar las herramientas de configuración de rueda de pip
    python -m pip install docutils pigmentos pypiwin32 kivy.deps.sdl2 kivy.deps.glew
    python -m pip install kivy.deps.gstreamer
    python -m pip install kivy.deps.angle
    python -m pip instalar kivy
    python -m pip install kivy_examples
    python -m pip instalar Cojín
    python -m pip instalar cython
    python -m pip instalar PyEnchant

Descripción

Hola, estoy tratando de ejecutar el código de ejemplo de la instalación de Kivy. El siguiente es el error que recibo de vuelta. Cualquier ayuda sería genial. He intentado consultar consultas anteriores sobre problemas similares, pero nada de lo sugerido ha funcionado hasta ahora.

[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.

Código y registros

Código que estoy tratando de ejecutar:

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

Comentario más útil

Bien,

algunas pruebas adicionales revelan que funciona correctamente si AMBOS kivy.deps.glew Y kivy.deps.sdl2 están instalados en modo Administrador.

Creo que el problema radica en que demasiado está codificado en site-packages\kivy\deps\*\__init__.py

Me pregunto si hay una forma más canónica de agregar archivos DLL de paquetes Pip a PATH ...

Todos 29 comentarios

¿Qué dice esto en su sistema (PowerShell):

python -m pip freeze | select-string cython

@dolang dice
'select-string' no se reconoce como un comando interno o externo,
programa operable o archivo por lotes.

sí, lo siento, eso no estaba claro. Debe ejecutar eso en PowerShell. Es el reemplazo del indicador de DOS.

Use Win + x y luego selecciónelo, o escriba powershell en el símbolo del sistema. Tendrá PS como las primeras 2 letras del aviso.

Ah, okey. En el powershell dice

Cython==0.27.3

De acuerdo, intenté reproducirlo con un entorno similar, no el mismo, sin suerte. Básicamente, lo que dice el error es que falta la biblioteca sdl2 . Pero debería haberse instalado con python -m pip install kivy.deps.sdl2 que está en su descripción original en alguna parte.

Tendré que intentar reproducir esto en otra máquina nuevamente, podrías intentar pip uninstall ... + pip install ... esa dependencia mientras tanto.

Probé en otra máquina ahora, obteniendo el mismo resultado (es decir, funciona aquí). Qué tienes para:

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

debería darte: kivy.deps.sdl2==0.1.17 .

Alternativamente, si tiene varios intérpretes de Python instalados:

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

Si uno de estos dos comandos no le da el resultado anterior, intente reinstalar kivy.deps.sdl2 .

Si lo hacen y no funciona, pegue lo que obtiene con:

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

Tal vez tenga que reinstalar el intérprete de Python de 64 bits. (Solo una suposición, aún no estoy seguro).

hice eso y

obtener kivy.deps.sdl2==0.1.17

Desinstalé Python de 32 bits e instalé Python de 64 bits en su lugar; sin embargo, sigo recibiendo este error

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

Bueno, no estaba seguro de si el problema aquí podría ser 32/64 bits. Pero, ¿puedes mirar si el .dll está realmente allí?

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

Si está allí, ¿tal vez su escáner de virus lo está bloqueando, o su firewall (o algún otro software realmente intrusivo)? Esto no es algo que debería suceder, en mi humilde opinión.

Editar: eché un vistazo a mi instalación nuevamente y abrí una aplicación en ejecución en Process Hacker. Este SDL2.dll está hecho a medida para PyPI y parece que no está firmado. Dependiendo de la configuración de su política de Windows, podría bloquearse automáticamente debido a eso. ¿Quizás lo siguiente pueda ayudar?

Windows 10: Desbloquear archivo en Windows 10

Según un comentario anterior, tiene cython 0.27.3 y el registro de la consola dice Kivy v1.10.0... esas versiones no son compatibles, aunque no estoy seguro de por qué el proveedor de ventanas que falta es la primera pista de este problema... .. ¿Tal vez intente usar cython 0.25.2 (compatible con 1.10) + reinstale kivy, o alternativamente pip install kivy==master con su versión actual de cython?

También tengo este problema con 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 show kivy kivy.deps.glew kivy.deps.sdl2
Nombre: Kivy
Versión: 1.10.0
Resumen: una biblioteca de software para el desarrollo rápido de aplicaciones multitáctiles aceleradas por hardware.
Página de inicio: http://kivy.org
Autor: Kivy Team y otros colaboradores
Correo electrónico del autor: [email protected]
Licencia: MIT
Ubicación: c:\usuarios\jedingtoappdata\roaming\python\python36\site-packages
Requiere: docutils, Kivy-Garden, pigmentos

Requerido por:

Nombre: kivy.deps.glew
Versión: 0.1.9
Resumen: dependencia binaria reempaquetada de Kivy.
Página de inicio: http://kivy.org/
Autor: Kivy Crew
Correo electrónico del autor: [email protected]
Licencia: MIT
Ubicación: c:\usuarios\jedingtoappdata\roaming\python\python36\site-packages
Requiere:

Requerido por:

Nombre: kivy.deps.sdl2
Versión: 0.1.17
Resumen: dependencia binaria reempaquetada de Kivy.
Página de inicio: http://kivy.org/
Autor: Kivy Crew
Correo electrónico del autor: [email protected]
Licencia: zlib
Ubicación: c:\usuarios\jedingtoappdata\roaming\python\python36\site-packages
Requiere:
Requerido por:
````

ejecutarlo da lo siguiente:

````
Python 3.6.5 (v3.6.5:f59c0932b4, 28 de marzo de 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)] en win32
Escriba "ayuda", "derechos de autor", "créditos" o "licencia" para obtener más información.

de la aplicación de importación kivy.app
[INFO] [Registrador] Registro de registro en C:\Users\jedingto.kivy\logs\kivy_18-05-17_4.txt
[INFORMACIÓN] [Kivy] v1.10.0
[INFORMACIÓN] [Python] v3.6.5 (v3.6.5:f59c0932b4, 28 de marzo de 2018, 17:00:18) [MSC v.1900 64 bits (AMD64)]
[INFO] [Fábrica] 194 símbolos cargados
[INFO] [Imagen] Proveedores: img_tex, img_dds, img_gif (img_sdl2, img_pil, img_ffpyplayer ignorados)
de kivy.uix.widget importar widget
clase PongGame(Widget):
... aprobar
...
clase PongApp (aplicación):
... def compilar(auto):
... devolver JuegoPong()
...
PongApp().ejecutar()
[CRÍTICO] [Ventana] No se puede encontrar ningún proveedor de Windows valioso.
sdl2 - ImportError: error al cargar la DLL: no se pudo encontrar el módulo especificado.
Archivo "C:\Users\jedingtoAppData\Roaming\Python\Python36\site-packages\kivy\core__init__.py", línea 59, en core_select_lib
fromlist=[nombre del módulo], nivel=0)
Archivo "C:\Users\jedingtoAppData\Roaming\Python\Python36\site-packages\kivy\core\window\window_sdl2.py", línea 26, en
desde kivy.core.window._window_sdl2 importar _WindowSDL2Storage

[CRÍTICO] [Aplicación] No se puede obtener una ventana, cancelar.
````

A pesar de la existencia de la DLL SDL2:

````
directorio %AppData%\Python\sharesdl2\bin\SDL2.dll
El volumen en la unidad C es XXXXXX
El número de serie del volumen es 0000-0000

Directorio de C:\Users\USERAppData\Roaming\Python\sharesdl2\bin

2018-05-17 11:33 a. m. 1,254,400 SDL2.dll
1 Archivo(s) 1,254,400 bytes
0 Dir(s) 161.199.689.728 bytes libres
````

y debo agregar que esto ocurre incluso si desinstalo kivy.deps.sdl del modo --user y lo instalo en C:\Program Files\Python\share\sdl2 a través del modo Administrador, el error es el mismo:

````

PongApp().ejecutar()
[CRÍTICO] [Ventana] No se puede encontrar ningún proveedor de Windows valioso.
sdl2 - ImportError: error al cargar la DLL: no se pudo encontrar el módulo especificado.
Archivo "C:\Users\jedingtoAppData\Roaming\Python\Python36\site-packages\kivy\core__init__.py", línea 59, en core_select_lib
fromlist=[nombre del módulo], nivel=0)
Archivo "C:\Users\jedingtoAppData\Roaming\Python\Python36\site-packages\kivy\core\window\window_sdl2.py", línea 26, en
desde kivy.core.window._window_sdl2 importar _WindowSDL2Storage

[CRÍTICO] [Aplicación] No se puede obtener una ventana, cancelar.

````

Ni siquiera funciona si cd directamente en el directorio al lado de SDL2.dll antes de ejecutar python3

Muy bien, hay varias cosas en juego aquí:

  1. el .dll tiene que existir en ese directorio
  2. el archivo ...\site-packages\kivy\deps\sdl2\__init__.py se carga y apunta a .dll
  3. Windows (o algún otro software intrusivo como algunos escáneres de virus) en sí mismo no bloquea la carga

Hasta ahora no he podido reproducirlo, pero 3. es algo que no se puede excluir.

Otra cosa que podría intentar: abra un símbolo del sistema y apunte la RUTA directamente a la carpeta sdl2. Algo como:

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

@dolang Bueno, parece que agregar la carpeta $# SDL2.dll %PATH% ... parte de ese error. img_sdl2 ahora ya no se "ignora", pero sigue siendo "No se puede encontrar ningún proveedor de Windows valioso". También dio un mensaje de error ligeramente diferente (¿casi exclusivamente expandido?)

[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

Confirmé agregando y eliminando repetidamente eso de la RUTA que la presencia de img_sdl2 en la sección "ignorado" depende de eso, y que el texto de error expandido aparece o desaparece dependiendo de si puede encontrar SDL2 o no.

Ahora, la dependencia glew debería tener una carpeta junto a ella ( share\glew\bin ). ¿Qué pasa si agregas eso también?

¡Ajá!

Entonces, en Windows, se puede "resolver" anteponiendo %AppData%\Python\share\glew\bin;%AppData%\Python\share\sdl2\bin; a 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^""

Pero desafortunadamente esto no es una solución per se.

¿Cómo se supone que las bibliotecas pip-installed-python se abrirán paso en el PATH el que deben estar para funcionar? (Un reinicio fue insuficiente)

Eso fue solo una pista para saber si las bibliotecas están realmente bloqueadas o no. Menos mal que no lo son.

Como se dijo anteriormente (punto 2.), puede ver que si abre __init__.py en site-packages\kivy\deps\... , pero eso debería funcionar de inmediato. Ahora necesito encontrar una manera de romper el mío exactamente como en tu caso. :sonrisa:

¿Esto sirve de algo?

````

importar pdb
pdb.ejecutar()
Interrupción del teclado
Cordero
Interrupción del teclado
pdb.run("desde kivy.core.window._window_sdl2 import _WindowSDL2Storage")
(1)()
(Pdb) s
--Llamar--
(966)_buscar_y_cargar()
(Pdb)
(968)_buscar_y_cargar()
(Pdb)
--Llamar--
(143)__inicio__()
(Pdb)
(144)__inicio__()
(Pdb)
(145)__inicio__()
(Pdb)
--Regreso--
(145)__init__()->Ninguno
(Pdb)
--Llamar--
(147)__enter__()
(Pdb)
(148)__enter__()
(Pdb)
--Llamar--
(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)
KeyError: '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)
--Llamar--
(58)__inicio__()
(Pdb)
(59)__iniciar__()
(Pdb)
(60)__inicio__()
(Pdb)
(61)__inicio__()
(Pdb)
(62)__inicio__()
(Pdb)
(63)__iniciar__()
(Pdb)
(64)__inicio__()
(Pdb)
--Regreso--
(64)__init__()->Ninguno
(Pdb)
(176)_get_module_lock()
(Pdb)
(187)_get_module_lock()
(Pdb)
(189)_get_module_lock()
(Pdb)
(191)_get_module_lock()
(Pdb)
--Regreso--
(191)_get_module_lock()->_ModuleLock('... 1869402554208
(Pdb)
(149)__enter__()
(Pdb)
--Llamar--
(78)adquirir()
(Pdb)
(84)adquirir()
(Pdb)
(85)adquirir()
(Pdb)
(86)adquirir()
(Pdb)
(87)adquirir()
(Pdb)
(88)adquirir()
(Pdb)
(89)adquirir()
(Pdb)
(90)adquirir()
(Pdb)
(91)adquirir()
(Pdb)
(92)adquirir()
(Pdb)
(101)adquirir()
(Pdb)
Error de clave: 12616
(101)adquirir()
(Pdb)
--Regreso--
(101)adquirir()->Ninguno
(Pdb)
Error de clave: 12616
(149)__enter__()
(Pdb)
--Regreso--
(149)__enter__()->Ninguno
(Pdb)
Error de clave: 12616
(968)_buscar_y_cargar()
(Pdb)
--Regreso--
(968)_buscar_y_cargar()->Ninguno
(Pdb)
Error de clave: 12616
(1)()
(Pdb)
--Regreso--
(1)()->Ninguno
(Pdb)
Error de clave: 12616
c:\archivos de programapython36\lib\bdb.py(434)run()
-> exec(cmd, globales, locales)
(Pdb)
c:\archivos de programapython36\lib\bdb.py(435)run()
-> excepto BdbQuit:
(Pdb)
c:\archivos de programapython36\lib\bdb.py(438)run()
-> self.quitting = Verdadero
(Pdb)
Rastreo (llamadas recientes más última):
Archivo "", línea 1, en
Archivo "C:\Program Files\Python36\lib\pdb.py", línea 1572, en ejecución
Pdb().run(declaración, globales, locales)
Archivo "C:\Program Files\Python36\lib\bdb.py", línea 434, en ejecución
exec(cmd, globales, locales)
Archivo "", línea 1, en
Archivo "", línea 968, en _buscar_y_cargar
Archivo "", línea 149, en __enter__
Archivo "", línea 101, en adquirir
Error de clave: 12616
````

Bien,

algunas pruebas adicionales revelan que funciona correctamente si AMBOS kivy.deps.glew Y kivy.deps.sdl2 están instalados en modo Administrador.

Creo que el problema radica en que demasiado está codificado en site-packages\kivy\deps\*\__init__.py

Me pregunto si hay una forma más canónica de agregar archivos DLL de paquetes Pip a PATH ...

Buena pregunta, pero no sé cómo llegó el equipo a su solución actual. Al menos podríamos reducirlo ahora, así que es un paso adelante.

Por cierto, ¿estás familiarizado con virtualenv . Normalmente los uso y rara vez tengo problemas. Así que por ahora podrías hacer (administrador):

py -m pip install virtualenv

Cuenta de usuario normal ( .venv es mi nombre preferido del directorio de virtualenv, cámbielo como desee):

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

agregue opcionalmente: python -m pip install kivy.deps.gstreamer

Espero haberlo entendido bien.

Configuración ventanas 10 python 363 (visual studio 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).

Tengo el mismo problema y lo resuelvo y mi solución no es buena. Copio todos los dlls (share/sdl2 share/angle share/glew share/gstreamer) en un repositorio y agrego este repositorio a la variable de ruta.

Instalé kivy usando el derecho de administrador (https://kivy.org/docs/installation/installation-windows.html) e intenté ejecutar usando el derecho de usuario (usuario laurent) y luego ocurrió el error: [CRÍTICO] [Ventana] No se puede encontrar cualquier valioso proveedor de Windows.
sdl2 - ImportError: error al cargar la DLL: no se pudo encontrar el módulo especificado.

Copiar todos los dlls en una nueva carpeta resuelve los problemas. Mi pregunta es entonces ¿Cómo puedo instalar kivy para ejecutar kivy con privilegios de usuario?

PD: lo siento, no soy bueno en inglés y python.

Por cierto, ¿estás familiarizado con virtualenv . Normalmente los uso y rara vez tengo problemas. Así que por ahora podrías hacer (administrador):

py -m pip install virtualenv

Cuenta de usuario normal ( .venv es mi nombre preferido del directorio de virtualenv, cámbielo como desee):

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

Intenté usar virtualenv y no funcionó. Todavía tengo un error similar. También agregué C:\Program Files\Python37\share\sdl2\bin y C:\Program Files\Python37\share\angle\bin a mi PATH. E hice lo que creo que hizo @LaurentBerger , copié esos dos archivos en otro directorio y luego agregué ese directorio a la ruta. Usar virtualenv con las dos opciones de PATH tampoco me funcionó.

Estoy usando python 3.7, así que instalé kivy.deps.angle en lugar de kivy.deps.glew

Registros:
```(venv) C:\Users\henry\Documents\Side Projects\fps>py main.py
[INFO] [Registrador] Registro de registro en C:\Users\henry.kivy\logs\kivy_18-09-15_16.txt
[INFO] [Kivy] v1.10.1
[INFORMACIÓN] [Python] v3.7.0 (v3.7.0:1bf9cc5093, 27 de junio de 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)]
[INFO] [Fábrica] 194 símbolos cargados
[INFO] [Imagen] Proveedores: img_tex, img_dds, img_sdl2, img_gif (img_pil, img_ffpyplayer ignorados)
[INFO] [Texto] Proveedor: sdl2
[INFO] [Ventana] Proveedor: sdl2
[CRÍTICO] [Ventana] No se puede encontrar ningún proveedor de Windows valioso.
sdl2 - ImportError: error al cargar la DLL: no se pudo encontrar el módulo especificado.
Archivo "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\site-packages\kivy\core__init__.py", línea 67, en core_select_lib
cls = cls()
Archivo "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\site-packages\kivy\core\window\window_sdl2.py", línea 140, en __init__
super(VentanaSDL, auto).__init__()
Archivo "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\site-packages\kivy\core\window__init__.py", línea 968, en __init__
self.create_window()
Archivo "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\site-packages\kivy\core\window\window_sdl2.py", línea 272, en create_window
self.fullscreen, redimensionable, estado)
Archivo "kivy\core\window_window_sdl2.pyx", línea 125, en kivy.core.window._window_sdl2._WindowSDL2Storage.setup_window
Archivo "kivy\graphics\cgl.pyx", línea 52, en kivy.graphics.cgl.cgl_get_backend_name
Archivo "kivy\graphics\cgl.pyx", línea 60, en kivy.graphics.cgl.cgl_get_backend_name
Archivo "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\importlib__init__.py", línea 127, en import_module
return _bootstrap._gcd_import(nombre[nivel:], paquete, nivel)
Archivo "", línea 1006, en _gcd_import
Archivo "", línea 983, en _buscar_y_cargar
Archivo "", línea 967, en _buscar_y_cargar_desbloqueado
Archivo "", línea 670, en _load_unlocked
Archivo "", línea 583, en module_from_spec
Archivo "", línea 1043, en create_module
Archivo "", línea 219, en _llamada_con_marcos_eliminados

[CRÍTICO] [Aplicación] No se puede obtener una ventana, cancelar.
```

En este tema, he visto mezclar arquitecturas de bibliotecas (Python en 64 bits, SDL2 en 32 bits), así que esa es una primera parada. Y sí, si mezcló el arco, las bibliotecas no se usarán en absoluto y Kivy no funcionará.
La instalación de SDL2 a través de kivy.deps.sdl2 debería funcionar.

Estoy usando python 3.7 y recibo este error. la versión de kivy es 1.10.1
como debo resolverlo

lo mismo aquí python 3.7, la versión kivy es 1.10.1 e intentó todas las formas de cargar la DLL pero no muestra piedad.

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

Esto Resuelve Mi Problema Que Es El Mismo Que Tuviste
Espero que esto te ayudará

Tuve el mismo problema. ¡Este video puede ayudar a aquellos que son visuales! https://youtu.be/gt-qndBYrCQ

Tuvo muchos problemas, pero logró resolverlos. Esto es lo que aprendí (usando PyCharm):
1) No puede instalar Kivy en Python 3.8. Si tienes 3.8, vuelve a 3.7.
2) Instalé todos los paquetes de los que alguien más publicó una foto. Voy a publicar el mío aquí. Vaya a su intérprete de proyecto y presione el botón "+" para agregarlos a todos. Deberían instalarse correctamente.
pkg1
pkg2
3) Estaba recibiendo el error de ventana sdl2. Vi este breve video (https://www.youtube.com/watch?v=e_jv8KsYBrs&t=212s) (que Dios bendiga a esta persona) y cambié mis caminos en el entorno de mi sistema.
4) Luego reinstalé las dependencias del sitio web de Kivy, ¡Y FUNCIONÓ!

¡¡¡¡Espero que esto ayude a alguien!!!!

Por cierto, ¿estás familiarizado con virtualenv . Normalmente los uso y rara vez tengo problemas. Así que por ahora podrías hacer (administrador):

py -m pip install virtualenv

Cuenta de usuario normal ( .venv es mi nombre preferido del directorio de virtualenv, cámbielo como desee):

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

Intenté usar virtualenv y no funcionó. Todavía tengo un error similar. También agregué C:\Program Files\Python37\share\sdl2\bin y C:\Program Files\Python37\share\angle\bin a mi PATH. E hice lo que creo que hizo @LaurentBerger , copié esos dos archivos en otro directorio y luego agregué ese directorio a la ruta. Usar virtualenv con las dos opciones de PATH tampoco me funcionó.

Estoy usando python 3.7, así que instalé kivy.deps.angle en lugar de kivy.deps.glew

Registros:

[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.

Intente copiar manualmente las carpetas glew, sdl2 y __init__.py de ../site-packages/kivy_deps a ../site-packages/kivy/deps.
funcionó para mí

¿Fue útil esta página
0 / 5 - 0 calificaciones