Kivy: Falha no carregamento da DLL Kivy sdl2

Criado em 26 mar. 2018  ·  29Comentários  ·  Fonte: kivy/kivy

  • Python: 3.6.4
  • SO: Windows 10
  • Kivy: 1.10.0
  • Método de instalação do Kivy:
    python -m pip install --upgrade pip wheel setuptools
    python -m pip instalar docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew
    python -m pip instala kivy.deps.gstreamer
    python -m pip instala kivy.deps.angle
    python -m pip instalar kivy
    python -m pip instalar kivy_examples
    python -m pip instalar travesseiro
    python -m pip instalar cython
    python -m pip instalar PyEnchant

Descrição

Oi, estou tentando executar o código de exemplo da instalação do Kivy. O seguinte é o erro que recebo de volta. Qualquer ajuda seria ótimo. Eu tentei olhar para perguntas anteriores sobre problemas semelhantes, mas nada sugerido sobre eles funcionou até agora.

[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 e registros

Código que estou tentando executar:

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

Comentários muito úteis

Nós vamos,

alguns testes adicionais revelam que ele funciona corretamente se AMBOS kivy.deps.glew E kivy.deps.sdl2 estiverem instalados no modo Administrador.

Eu acho que o problema está em ser muito codificado em site-packages\kivy\deps\*\__init__.py

Gostaria de saber se existe uma maneira mais canônica de adicionar DLLs de pacotes Pip no PATH ...?

Todos 29 comentários

o que isso diz em seu sistema (PowerShell):

python -m pip freeze | select-string cython

@dolang diz
'select-string' não é reconhecido como um comando interno ou externo,
programa operável ou arquivo de lote.

sim, desculpe não ficou claro. Você precisa executar isso no PowerShell. É o substituto para o prompt do DOS.

Use Win + x e selecione-o ou digite powershell no prompt de comando. Você terá PS como as 2 primeiras letras do prompt.

Oh, tudo bem. No powershell diz

Cython==0.27.3

Tudo bem, tentei reproduzi-lo com um ambiente semelhante não mesmo sem sorte. Basicamente, o que o erro diz é que a biblioteca sdl2 está ausente. Mas deveria ter sido instalado com python -m pip install kivy.deps.sdl2 que está em sua descrição original em algum lugar.

Vou ter que tentar reproduzir isso em outra máquina novamente, você pode tentar pip uninstall ... + pip install ... essa dependência nesse meio tempo.

Tentei em outra máquina agora, obtendo o mesmo resultado (ou seja, funciona aqui). O que você tem para:

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

deve dar-lhe: kivy.deps.sdl2==0.1.17 .

Como alternativa, se você tiver vários intérpretes Python instalados:

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

Se um desses dois comandos não fornecer a saída acima, tente reinstalar kivy.deps.sdl2 .

Se isso acontecer e não funcionar, cole o que você obtém com:

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

Talvez você precise reinstalar o interpretador Python de 64 bits. (Apenas um palpite, ainda não tenho certeza.)

eu fiz isso e

obter kivy.deps.sdl2==0.1.17

Eu desinstalei o Python de 32 bits e instalei o Python de 64 bits em seu lugar, no entanto, ainda recebo esse erro

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

Bem, eu não tinha certeza se 32/64 bits poderia ser o problema aqui. Mas você pode olhar se o .dll está realmente lá?

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

Se estiver lá, talvez seu antivírus esteja bloqueando ou seu firewall (ou algum outro software realmente intrusivo)? Isso não é algo que deveria acontecer, imho.

Edit: dei uma olhada na minha instalação novamente e abri um aplicativo em execução no Process Hacker. Este SDL2.dll foi desenvolvido sob medida para PyPI e parece não estar assinado. Dependendo das configurações de política do Windows, ele pode ser bloqueado automaticamente por causa disso. Talvez o seguinte possa ajudar?

Windows 10: Desbloquear arquivo no Windows 10

De acordo com o comentário anterior, você tem o cython 0.27.3 e o log do console diz Kivy v1.10.0 ... essas versões não são compatíveis, embora eu não tenha certeza exatamente por que o provedor de janela ausente é a primeira pista para esse problema .. .. Talvez tente usar o cython 0.25.2 (compatível com 1.10) + reinstalar o kivy ou, alternativamente, pip install kivy==master com sua versão atual do cython?

Estou recebendo esse problema também com 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
Nome: Kivy
Versão: 1.10.0
Resumo: Uma biblioteca de software para desenvolvimento rápido de aplicativos multitoque acelerados por hardware.
Página inicial: http://kivy.org
Autor: Kivy Team e outros colaboradores
Autor-e-mail: [email protected]
Licença: MIT
Localização: c:\users\jedingtoappdata\roaming\python\python36\site-packages
Requer: docutils, Kivy-Garden, pygments

Solicitado por:

Nome: kivy.deps.glew
Versão: 0.1.9
Resumo: Dependência binária reempacotada do Kivy.
Página inicial: http://kivy.org/
Autor: Kivy Crew
Autor-e-mail: [email protected]
Licença: MIT
Localização: c:\users\jedingtoappdata\roaming\python\python36\site-packages
Requer:

Solicitado por:

Nome: kivy.deps.sdl2
Versão: 0.1.17
Resumo: Dependência binária reempacotada do Kivy.
Página inicial: http://kivy.org/
Autor: Kivy Crew
Autor-e-mail: [email protected]
Licença: zlib
Localização: c:\users\jedingtoappdata\roaming\python\python36\site-packages
Requer:
Solicitado por:
````

executá-lo dá o seguinte:

````
Python 3.6.5 (v3.6.5:f59c0932b4, 28 de março de 2018, 17:00:18) [MSC v.1900 64 bits (AMD64)] no win32
Digite "ajuda", "direitos autorais", "créditos" ou "licença" para obter mais informações.

do aplicativo de importação kivy.app
[INFO ] [Logger ] Gravar log em C:\Users\jedingto.kivy\logs\kivy_18-05-17_4.txt
[INFO] [Kivy] v1.10.0
[INFO] [Python] v3.6.5 (v3.6.5:f59c0932b4, 28 de março de 2018, 17:00:18) [MSC v.1900 64 bits (AMD64)]
[INFO] [Fábrica] 194 símbolos carregados
[INFO] [Imagem] Provedores: img_tex, img_dds, img_gif (img_sdl2, img_pil, img_ffpyplayer ignorados)
de kivy.uix.widget import Widget
class PongGame(Widget):
... passar
...
class PongApp(Aplicativo):
... def build(self):
... return PongGame()
...
PongApp().run()
[CRÍTICO] [Janela] Não foi possível encontrar nenhum provedor de janela valioso.
sdl2 - ImportError: Falha ao carregar DLL: O módulo especificado não foi encontrado.
Arquivo "C:\Users\jedingtoAppData\Roaming\Python\Python36\site-packages\kivy\core__init__.py", linha 59, em core_select_lib
fromlist=[modulename], level=0)
Arquivo "C:\Users\jedingtoAppData\Roaming\Python\Python36\site-packages\kivy\core\window\window_sdl2.py", linha 26, em
de kivy.core.window._window_sdl2 importar _WindowSDL2Storage

[CRÍTICO] [Aplicativo] Não foi possível obter uma janela, aborte.
````

Apesar da existência da DLL SDL2:

````
diretório %AppData%\Python\sharesdl2\bin\SDL2.dll
O volume na unidade C é XXXXXX
O número de série do volume é 0000-0000

Diretório de C:\Users\USERAppData\Roaming\Python\sharesdl2\bin

17/05/2018 11h33 1.254.400 SDL2.dll
1 Arquivo(s) 1.254.400 bytes
0 Dir(s) 161.199.689.728 bytes livres
````

e devo acrescentar que isso ocorre mesmo se eu desinstalar kivy.deps.sdl do modo --user e instalá-lo em C:\Program Files\Python\share\sdl2 via Modo Administrador, o erro é o mesmo:

````

PongApp().run()
[CRÍTICO] [Janela] Não foi possível encontrar nenhum provedor de janela valioso.
sdl2 - ImportError: Falha ao carregar DLL: O módulo especificado não foi encontrado.
Arquivo "C:\Users\jedingtoAppData\Roaming\Python\Python36\site-packages\kivy\core__init__.py", linha 59, em core_select_lib
fromlist=[modulename], level=0)
Arquivo "C:\Users\jedingtoAppData\Roaming\Python\Python36\site-packages\kivy\core\window\window_sdl2.py", linha 26, em
de kivy.core.window._window_sdl2 importar _WindowSDL2Storage

[CRÍTICO] [Aplicativo] Não foi possível obter uma janela, aborte.

````

Nem funciona se eu cd direto no diretório ao lado de SDL2.dll antes de executar python3

Tudo bem, há várias coisas em jogo aqui:

  1. o .dll tem que existir nesse diretório
  2. o arquivo ...\site-packages\kivy\deps\sdl2\__init__.py é carregado e aponta para o .dll
  3. O próprio Windows (ou algum outro software intrusivo, como alguns antivírus) não bloqueia o carregamento

Até agora não consegui reproduzi-lo, mas 3. é algo que não pode ser excluído.

Outra coisa que você pode tentar: abra um prompt de comando e aponte o PATH diretamente para a pasta sdl2. Algo como:

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

@dolang Bem, parece que adicionar a pasta SDL2.dll ao %PATH% corrige... parte desse erro. img_sdl2 agora não é mais "ignorado", mas ainda é "Incapaz de encontrar qualquer provedor de janela valioso". Ele também deu algumas mensagens de erro ligeiramente diferentes (quase exclusivamente expandidas?)

[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

Confirmei adicionando e removendo repetidamente isso do PATH que a presença de img_sdl2 na seção "ignorado" depende disso e que o texto de erro expandido aparece ou desaparece dependendo de encontrar SDL2 ou não.

Agora, a dependência glew deve ter uma pasta bem próxima a ela ( share\glew\bin ). O que acontece se você adicionar isso também?

Ah!

Portanto, no Windows, isso pode ser "resolvido" adicionando %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^""

Mas infelizmente esta não é uma solução em si

Como as bibliotecas pip-installed-python-libraries devem entrar no PATH que devem estar para funcionar? (Uma reinicialização foi insuficiente)

Isso foi apenas uma pista para eu descobrir se as bibliotecas estão realmente bloqueadas ou não. Ainda bem que não são.

Como dito acima (ponto 2.), você pode ver que se você abrir o __init__.py em site-packages\kivy\deps\... , mas isso deve funcionar imediatamente. Agora eu preciso encontrar uma maneira de quebrar o meu exatamente como no seu caso. :sorriso:

Isso serve para alguma coisa?

````

importar pdb
pdb.run()
Interrupção do teclado
Borrego
Interrupção do teclado
pdb.run("de kivy.core.window._window_sdl2 import _WindowSDL2Storage")
(1)()
(Pdb) s
--Ligar--
(966)_find_and_load()
(Pdb)
(968)_find_and_load()
(Pdb)
--Ligar--
(143)__init__()
(Pdb)
(144)__init__()
(Pdb)
(145)__init__()
(Pdb)
--Retornar--
(145)__init__()->Nenhum
(Pdb)
--Ligar--
(147)__enter__()
(Pdb)
(148)__enter__()
(Pdb)
--Ligar--
(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)
--Ligar--
(58)__init__()
(Pdb)
(59)__init__()
(Pdb)
(60)__init__()
(Pdb)
(61)__init__()
(Pdb)
(62)__init__()
(Pdb)
(63)__init__()
(Pdb)
(64)__init__()
(Pdb)
--Retornar--
(64)__init__()->Nenhum
(Pdb)
(176)_get_module_lock()
(Pdb)
(187)_get_module_lock()
(Pdb)
(189)_get_module_lock()
(Pdb)
(191)_get_module_lock()
(Pdb)
--Retornar--
(191)_get_module_lock()->_ModuleLock('... 1869402554208
(Pdb)
(149)__enter__()
(Pdb)
--Ligar--
(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)
Erro de chave: 12616
(101)adquirir()
(Pdb)
--Retornar--
(101)adquirir()->Nenhum
(Pdb)
Erro de chave: 12616
(149)__enter__()
(Pdb)
--Retornar--
(149)__enter__()->Nenhum
(Pdb)
Erro de chave: 12616
(968)_find_and_load()
(Pdb)
--Retornar--
(968)_find_and_load()->Nenhum
(Pdb)
Erro de chave: 12616
(1)()
(Pdb)
--Retornar--
(1)()->Nenhum
(Pdb)
Erro de chave: 12616
c:\program filespython36\lib\bdb.py(434)run()
-> exec(cmd, globais, locais)
(Pdb)
c:\program filespython36\lib\bdb.py(435)run()
-> exceto BdbQuit:
(Pdb)
c:\program filespython36\lib\bdb.py(438)run()
-> self.quitting = True
(Pdb)
Traceback (última chamada mais recente):
Arquivo "", linha 1, em
Arquivo "C:\Program Files\Python36\lib\pdb.py", linha 1572, em execução
Pdb().run(instrução, globais, locais)
Arquivo "C:\Program Files\Python36\lib\bdb.py", linha 434, em execução
exec(cmd, globais, locais)
Arquivo "", linha 1, em
Arquivo "", linha 968, em _find_and_load
Arquivo "", linha 149, em __enter__
Arquivo "", linha 101, na aquisição
Erro de chave: 12616
````

Nós vamos,

alguns testes adicionais revelam que ele funciona corretamente se AMBOS kivy.deps.glew E kivy.deps.sdl2 estiverem instalados no modo Administrador.

Eu acho que o problema está em ser muito codificado em site-packages\kivy\deps\*\__init__.py

Gostaria de saber se existe uma maneira mais canônica de adicionar DLLs de pacotes Pip no PATH ...?

Boa pergunta, mas não sei como a equipe chegou à solução atual. Pelo menos podemos reduzi-lo agora, então isso é um passo à frente.

A propósito, você conhece virtualenv . Eu costumo usar esses e raramente tenho problemas. Então, por enquanto você pode fazer (admin):

py -m pip install virtualenv

Conta de usuário normal ( .venv é meu nome preferido do diretório do virtualenv, altere como quiser):

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

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

Espero que eu tenha entendido tudo bem.

Configuração do windows 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).

Eu tenho o mesmo problema e resolvo-o e minha solução não é boa. Eu copio todas as dlls (share/sdl2 share/angle share/glew share/gstreamer) em um repositório e adiciono esse repositório à variável de caminho.

Eu instalei o kivy usando o direito de administrador (https://kivy.org/docs/installation/installation-windows.html) e tentei executar usando o direito do usuário (user laurent) então acontece o erro: [CRITICAL] [Window] Unable to find qualquer provedor de janela valioso.
sdl2 - ImportError: Falha ao carregar DLL: O módulo especificado não foi encontrado.

Copiar todas as dlls em uma nova pasta resolve os problemas. Minha pergunta é como posso instalar o kivy para executar o kivy com privilégio de usuário?

PS desculpe, eu não sou bom em inglês e python

A propósito, você conhece virtualenv . Eu costumo usar esses e raramente tenho problemas. Então, por enquanto você pode fazer (admin):

py -m pip install virtualenv

Conta de usuário normal ( .venv é meu nome preferido do diretório do virtualenv, altere como quiser):

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

Tentei usar o virtualenv e não funcionou. Eu ainda tenho um erro semelhante. Eu também adicionei C:\Program Files\Python37\share\sdl2\bin e C:\Program Files\Python37\share\angle\bin ao meu PATH. E fiz o que acho que @LaurentBerger fez, copie esses dois arquivos em outro diretório e adicione esse diretório ao caminho. Usar virtualenv com as duas opções PATH também não funcionou para mim.

Estou usando o python 3.7, então instalei kivy.deps.angle em vez de kivy.deps.glew

Histórico:
```(venv) C:\Users\henry\Documents\Side Projects\fps>py main.py
[INFO ] [Logger ] Gravar log em 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, 27 de junho de 2018, 04:59:51) [MSC v.1914 64 bits (AMD64)]
[INFO] [Fábrica] 194 símbolos carregados
[INFO] [Imagem] Provedores: img_tex, img_dds, img_sdl2, img_gif (img_pil, img_ffpyplayer ignorado)
[INFO] [Texto] Provedor: sdl2
[INFO] [Window] Provedor: sdl2
[CRÍTICO] [Janela] Não foi possível encontrar nenhum provedor de janela valioso.
sdl2 - ImportError: Falha ao carregar DLL: O módulo especificado não foi encontrado.
Arquivo "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\site-packages\kivy\core__init__.py", linha 67, em core_select_lib
cl = cl()
Arquivo "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\site-packages\kivy\core\window\window_sdl2.py", linha 140, em __init__
super(WindowSDL, self).__init__()
Arquivo "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\site-packages\kivy\core\window__init__.py", linha 968, em __init__
self.create_window()
Arquivo "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\site-packages\kivy\core\window\window_sdl2.py", linha 272, em create_window
self.fullscreen, redimensionável, estado)
Arquivo "kivy\core\window_window_sdl2.pyx", linha 125, em kivy.core.window._window_sdl2._WindowSDL2Storage.setup_window
Arquivo "kivy\graphics\cgl.pyx", linha 52, em kivy.graphics.cgl.cgl_get_backend_name
Arquivo "kivy\graphics\cgl.pyx", linha 60, em kivy.graphics.cgl.cgl_get_backend_name
Arquivo "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\importlib__init__.py", linha 127, em import_module
return _bootstrap._gcd_import(nome[nível:], pacote, nível)
Arquivo "", linha 1006, em _gcd_import
Arquivo "", linha 983, em _find_and_load
Arquivo "", linha 967, em _find_and_load_unlocked
Arquivo "", linha 670, em _load_unlocked
Arquivo "", linha 583, em module_from_spec
Arquivo "", linha 1043, em create_module
Arquivo "", linha 219, em _call_with_frames_removed

[CRÍTICO] [Aplicativo] Não foi possível obter uma janela, aborte.
```

Sobre este assunto, já vi misturar arquiteturas de bibliotecas (Python em 64 bits, SDL2 em 32 bits), então essa é a primeira parada. E sim, se você misturou o arco, as bibliotecas não serão usadas e o Kivy não funcionará.
A instalação do SDL2 via kivy.deps.sdl2 deve funcionar.

Estou usando o python 3.7 e estou recebendo esse erro. versão kivy é 1.10.1
como devo resolver

mesmo aqui python 3.7 , a versão kivy é 1.10.1 e tentei todas as maneiras de carregar a DLL, mas não mostra misericórdia.

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

Isso resolve meu problema, que é o mesmo que você teve
Espero que isso irá ajudá-lo

Eu tive o mesmo problema. Este vídeo pode ajudar quem é visual! https://youtu.be/gt-qndBYrCQ

Teve muitos problemas, mas conseguiu resolvê-los. Aqui está o que eu aprendi (usando PyCharm):
1) Você não pode instalar o Kivy no Python 3.8. Se você tem 3.8, volte para 3.7.
2) Eu instalei todos os pacotes que alguém postou uma foto. Vou postar o meu aqui. Vá para o seu interpretador de projeto e aperte o botão "+" para adicioná-los todos. Eles devem ser instalados com sucesso.
pkg1
pkg2
3) Estava recebendo o erro sdl2 da janela. Assisti esse pequeno vídeo (https://www.youtube.com/watch?v=e_jv8KsYBrs&t=212s) (que Deus abençoe essa pessoa) e mudei meus caminhos no ambiente do meu sistema.
4) Reinstalei as dependências do site Kivy -- E FUNCIONOU!!!

Espero que isso ajude alguém!!!!

A propósito, você conhece virtualenv . Eu costumo usar esses e raramente tenho problemas. Então, por enquanto você pode fazer (admin):

py -m pip install virtualenv

Conta de usuário normal ( .venv é meu nome preferido do diretório do virtualenv, altere como quiser):

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

Tentei usar o virtualenv e não funcionou. Eu ainda tenho um erro semelhante. Eu também adicionei C:\Program Files\Python37\share\sdl2\bin e C:\Program Files\Python37\share\angle\bin ao meu PATH. E fiz o que acho que @LaurentBerger fez, copie esses dois arquivos em outro diretório e adicione esse diretório ao caminho. Usar virtualenv com as duas opções PATH também não funcionou para mim.

Estou usando o python 3.7, então instalei kivy.deps.angle em vez de kivy.deps.glew

Histórico:

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

Tente copiar manualmente as pastas glew,sdl2 e __init__.py de ../site-packages/kivy_deps para ../site-packages/kivy/deps.
Funcionou para mim

Esta página foi útil?
0 / 5 - 0 avaliações