Je reçois ce qui semble être une erreur commune lors de l'exécution du programme Kivy hello world. J'ai essayé les solutions que j'ai vues ici: installez manuellement gstreamer
, en l'ajoutant à PATH
et en installant PySDL2
. Mon système d'exploitation est Windows 7, toutes les autres informations de version sont dans le journal des erreurs.
# you need this two lines:
import os
os.environ['KIVY_IMAGE'] = 'pil,sdl2'
#kivy program
from kivy.app import App
from kivy.uix.button import Button
class TestApp(App):
def build(self):
return Button(text='Hello World')
TestApp().run()
Le journal des erreurs:
[INFO ] [Logger ] Record log in C:\Users\xyz\.kivy\logs\kivy_16-11-19_11.txt
[INFO ] [Kivy ] v1.9.1
[INFO ] [Python ] v2.7.12 (v2.7.12:d33e0cf91556, Jun 27 2016, 15:24:40) [MSC v.1500 64 bit (AMD64)]
[INFO ] [Factory ] 179 symbols loaded
[INFO ] [Image ] Providers: img_pil, img_sdl2 (img_tex, img_dds, img_ffpyplayer, img_gif ignored)
[INFO ] [Text ] Provider: sdl2
[INFO ] [OSC ] using <thread> for socket
[INFO ] [Window ] Provider: sdl2
[INFO ] [GL ] GLEW initialization succeeded
[INFO ] [GL ] OpenGL version <3.1.0 - Build 8.15.10.2538>
[INFO ] [GL ] OpenGL vendor <Intel>
[INFO ] [GL ] OpenGL renderer <Intel(R) HD Graphics Family>
[INFO ] [GL ] OpenGL parsed version: 3, 1
[INFO ] [GL ] Shading version <1.40 - Intel Build 8.15.10.2538>
[INFO ] [GL ] Texture max size <8192>
[INFO ] [GL ] Texture max units <16>
[INFO ] [Shader ] fragment shader: <No errors.>
[INFO ] [Shader ] vertex shader: <No errors.>
[INFO ] [Shader ] program: <No errors.>
[CRITICAL ] [Window ] Unable to find any valuable Window provider at all!
sdl2 - AttributeError: tobytes
File "C:\Program Files\python27\lib\site-packages\kivy\core\__init__.py", line 67, in core_select_lib
cls = cls()
File "C:\Program Files\python27\lib\site-packages\kivy\core\window\window_sdl2.py", line 138, in __init__
super(WindowSDL, self).__init__()
File "C:\Program Files\python27\lib\site-packages\kivy\core\window\__init__.py", line 722, in __init__
self.create_window()
File "C:\Program Files\python27\lib\site-packages\kivy\core\window\window_sdl2.py", line 255, in create_window
super(WindowSDL, self).create_window()
File "C:\Program Files\python27\lib\site-packages\kivy\core\window\__init__.py", line 897, in create_window
self.render_context = RenderContext()
File "kivy\graphics\instructions.pyx", line 756, in kivy.graphics.instructions.RenderContext.__init__ (kivy\graphics\instructions.c:10729)
File "C:\Program Files\python27\lib\site-packages\kivy\core\image\__init__.py", line 512, in __init__
self.filename = arg
File "C:\Program Files\python27\lib\site-packages\kivy\core\image\__init__.py", line 700, in _set_filename
mipmap=self._mipmap, nocache=self._nocache)
File "C:\Program Files\python27\lib\site-packages\kivy\core\image\__init__.py", line 430, in load
im = loader(filename, **kwargs)
File "C:\Program Files\python27\lib\site-packages\kivy\core\image\__init__.py", line 198, in __init__
self._data = self.load(filename)
File "C:\Program Files\python27\lib\site-packages\kivy\core\image\img_pil.py", line 101, in load
return list(self._img_read(im))
File "C:\Program Files\python27\lib\site-packages\kivy\core\image\img_pil.py", line 86, in _img_read
img_tmp.mode.lower(), img_tmp.tobytes())
File "C:\Program Files\python27\lib\site-packages\PIL\Image.py", line 514, in __getattr__
raise AttributeError(name)
[CRITICAL ] [App ] Unable to get a Window, abort.
Exception SystemExit: 1 in 'kivy.properties.dpi2px' ignored
[CRITICAL ] [App ] Unable to get a Window, abort.
Dans cmd, accédez à python34 puis aux scripts et installez ce qui suit:
pip install --upgrade pip wheel setuptools
pip install docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew
pip install kivy.deps.gstreamer
pip install kivy.deps.angle
pip install kivy
Essayez de mettre <python dir>\share\sdl2\bin
sur votre chemin, cela devrait faire l'affaire. Le problème est qu’il ne trouve pas le binaire sdl2 avec lequel il travaille. Il n'y a probablement même pas de PIL fenêtrefournisseur , de sorte que l'utilisation de la variable d'environnement ne fera rien pour la création d'une fenêtre (elle sera utilisée en tant que fournisseur d'image ).
Je ne connais pas vraiment PySDL2, je ne peux donc pas vous aider. Cependant, j'ai créé un installer pour Kivy sous Windows afin de faciliter les choses pour les débutants.
De toute façon, il y a deux façons de se retrouver:
Vous allez mettre les dossiers bin
dans une variable PATH
de manière permanente
Je considère que c'est vraiment stupide, sauf si vous êtes sûr de ne pas supprimer Python ou le dossier, sinon vous aurez un dossier fantôme dans PATH
+ tous les autres programmes auront un accès aux fichiers dans les dossiers bin
via PATH
Vous aurez un fichier batch qui le fait temporairement
Seuls les programmes exécutés à partir de la console/du lot auront un accès au dossier bin
.
Le programme d’installation le fait pour vous et effectue même l’installation à partir de rien (pas de Python) ou de nombreuses autres choses.
Si vous n'avez pas installé Kivy dependencies , veuillez le faire en premier.
Désactivez l'accélération 3D et l'accélération vidéo 2D dans les paramètres d'affichage du logiciel virtuel (alias vmbox, vmware) ..__ Je pense que cela fonctionnera pour vous, cela fonctionnera pour moi après de nombreux essais.
Pas sûr de Windows ou de Linux, mais sur Python-for-Android tout en haut, vous devez mettre:
#qpy:kivy
import kivy
kivy.require('1.10.1') # replace with your current kivy version !
Je viens de trouver une solution rapide
pip
multisamples = 0
from = 2
puis redémarrez votrecomputer. Cela permettra d’économiser d’autres problèmes, comme[CRITICAL] [GL] Version minimale requise d'OpenGL version (2.0) NOT a trouvé!
Cela a fonctionné pour moi sur Windows 7 64 bits, python3.5 (32 bits) avec Kivy version 1.10.0