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 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()
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?
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
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:
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:
.dll
tem que existir nesse diretório...\site-packages\kivy\deps\sdl2\__init__.py
é carregado e aponta para o .dll
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
eC:\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 "
Arquivo "
Arquivo "
Arquivo "
Arquivo "
Arquivo "
Arquivo "
[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.
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.
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
eC:\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 dekivy.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
Comentários muito úteis
Nós vamos,
alguns testes adicionais revelam que ele funciona corretamente se AMBOS
kivy.deps.glew
Ekivy.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
...?