Bonjour, j'essaie d'exécuter l'exemple de code à partir de l'installation de Kivy. Voici l'erreur que je reçois. Toute aide est la bienvenue. J'ai essayé d'examiner les enquêtes précédentes sur des problèmes similaires, mais rien de ce qui a été suggéré à leur sujet n'a fonctionné jusqu'à présent.
[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.
Code que j'essaie d'exécuter :
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()
qu'est-ce que cela dit sur votre système (PowerShell):
python -m pip freeze | select-string cython
@dolang c'est dit
'select-string' n'est pas reconnu comme une commande interne ou externe,
programme utilisable ou fichier de commandes.
oui, désolé ce n'était pas clair. Vous devez exécuter cela dans PowerShell. C'est le remplacement de l'invite DOS.
Utilisez Win + x
puis sélectionnez-le, ou tapez powershell
à l'invite de commande. Vous aurez PS
comme les 2 premières lettres de l'invite.
Oh d'accord. Dans le powershell, il est dit
Cython==0.27.3
D'accord, j'ai essayé de le reproduire avec un environnement similaire mais pas le même sans succès. Fondamentalement, ce que l'erreur indique, c'est que la bibliothèque sdl2
est manquante. Mais il aurait dû être installé avec python -m pip install kivy.deps.sdl2
qui se trouve quelque part dans votre description d'origine.
Je vais devoir essayer de reproduire ceci sur une autre machine, vous pouvez essayer de pip uninstall ...
+ pip install ...
cette dépendance en attendant.
Essayé sur une autre machine maintenant, obtenant le même résultat (c'est-à-dire que cela fonctionne ici). Qu'est-ce que vous avez pour:
PS C:\> python -m pip freeze | select-string sdl2
cela devrait vous donner : kivy.deps.sdl2==0.1.17
.
Alternativement, si vous avez plusieurs interpréteurs Python installés :
PS C:\> py -3.6 -m pip freeze | select-string sdl2
Si l'une de ces deux commandes ne vous donne pas le résultat ci-dessus, essayez de réinstaller kivy.deps.sdl2
.
S'ils le font et que cela ne fonctionne pas, veuillez coller ce que vous obtenez avec :
PS C:\> dir C:\Users\dev.DoddJ\AppData\Local\Programs\Python\Python36-32\share\sdl2\bin
Vous devrez peut-être réinstaller l'interpréteur Python 64 bits. (Juste une supposition, pas encore sûr.)
j'ai fait ça et
obtenir kivy.deps.sdl2==0.1.17
J'ai désinstallé 32 bits et installé Python 64 bits à sa place, cependant, j'obtiens toujours cette erreur
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
Eh bien, je ne savais pas si 32/64 bits pouvait être le problème ici. Mais pouvez-vous regarder si le .dll
est bien là ?
PS C:\> dir C:\Users\dev.DoddJ\AppData\Local\Programs\Python\Python36\share\sdl2\bin
S'il est là, peut-être que votre antivirus le bloque, ou votre pare-feu (ou un autre logiciel vraiment intrusif) ? Ce n'est pas quelque chose qui devrait arriver, à mon humble avis.
Edit : j'ai revu mon installation et ouvert une application en cours d'exécution dans Process Hacker. Ce SDL2.dll est conçu sur mesure pour PyPI et il semble qu'il ne soit pas signé. Selon vos paramètres de politique Windows, il pourrait être bloqué automatiquement à cause de cela. Peut-être que ce qui suit peut aider?
Selon un commentaire précédent, vous avez cython 0.27.3 et le journal de la console indique Kivy v1.10.0 ... ces versions ne sont pas compatibles, bien que je ne sache pas exactement pourquoi le fournisseur de fenêtres manquant est le premier indice de ce problème. .. Essayez peut-être d'utiliser cython 0.25.2 (compatible avec 1.10) + réinstallez kivy, ou alternativement pip install kivy==master
avec votre version actuelle de cython ?
Je reçois également ce problème avec 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
Nom : Kivy
Version : 1.10.0
Résumé : Une bibliothèque de logiciels pour le développement rapide d'applications multitouch accélérées par le matériel.
Page d'accueil : http://kivy.org
Auteur : Kivy Team et autres contributeurs
E-mail de l'auteur : [email protected]
Licence : MIT
Emplacement : c:\users\jedingtoappdata\roaming\python\python36\site-packages
Nécessite : docutils, Kivy-Garden, pygments
Nom : kivy.deps.glew
Version : 0.1.9
Résumé : Dépendance binaire reconditionnée de Kivy.
Page d'accueil : http://kivy.org/
Auteur : Kivy Crew
E-mail de l'auteur : [email protected]
Licence : MIT
Emplacement : c:\users\jedingtoappdata\roaming\python\python36\site-packages
A besoin:
Nom : kivy.deps.sdl2
Version : 0.1.17
Résumé : Dépendance binaire reconditionnée de Kivy.
Page d'accueil : http://kivy.org/
Auteur : Kivy Crew
E-mail de l'auteur : [email protected]
Licence : zlib
Emplacement : c:\users\jedingtoappdata\roaming\python\python36\site-packages
A besoin:
Requis par:
````
l'exécuter donne ceci:
````
Python 3.6.5 (v3.6.5:f59c0932b4, 28 mars 2018, 17:00:18) [MSC v.1900 64 bits (AMD64)] sur win32
Tapez "aide", "copyright", "crédits" ou "licence" pour plus d'informations.
depuis l'application d'importation kivy.app
[INFO ] [Logger ] Enregistrer le journal dans 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 mars 2018, 17:00:18) [MSC v.1900 64 bits (AMD64)]
[INFO ] [Usine ] 194 symboles chargés
[INFO ] [Image ] Fournisseurs : img_tex, img_dds, img_gif (img_sdl2, img_pil, img_ffpyplayer ignorés)
depuis kivy.uix.widget importer le widget
classe PongGame(Widget):
... passe
...
classe PongApp(App):
... def build(self):
... retourne PongGame()
...
PongApp().run()
[CRITIQUE] [Window ] Impossible de trouver un fournisseur Windows valable.
sdl2 - ImportError : Échec du chargement de la DLL : le module spécifié est introuvable.
Fichier "C:\Users\jedingtoAppData\Roaming\Python\Python36\site-packages\kivy\core__init__.py", ligne 59, dans core_select_lib
fromlist=[nom du module], niveau=0)
Fichier "C:\Users\jedingtoAppData\Roaming\Python\Python36\site-packages\kivy\core\window\window_sdl2.py", ligne 26, dans
depuis kivy.core.window._window_sdl2 importer _WindowSDL2Storage
[CRITIQUE] [App ] Impossible d'obtenir une fenêtre, abandonnez.
````
Malgré l'existence de la DLL SDL2 :
````
répertoire %AppData%\Python\sharesdl2\bin\SDL2.dll
Le volume du lecteur C est XXXXXX
Le numéro de série du volume est 0000-0000
Répertoire de C:\Users\USERAppData\Roaming\Python\sharesdl2\bin
2018-05-17 11:33 1 254 400 SDL2.dll
1 Fichier(s) 1 254 400 octets
0 Dir(s) 161 199 689 728 octets libres
````
et je dois ajouter que cela se produit même si je désinstalle kivy.deps.sdl
du mode --user
et que je l'installe dans C:\Program Files\Python\share\sdl2
via le mode administrateur, l'erreur est la même :
````
PongApp().run()
[CRITIQUE] [Window ] Impossible de trouver un fournisseur Windows valable.
sdl2 - ImportError : Échec du chargement de la DLL : le module spécifié est introuvable.
Fichier "C:\Users\jedingtoAppData\Roaming\Python\Python36\site-packages\kivy\core__init__.py", ligne 59, dans core_select_lib
fromlist=[nom du module], niveau=0)
Fichier "C:\Users\jedingtoAppData\Roaming\Python\Python36\site-packages\kivy\core\window\window_sdl2.py", ligne 26, dans
depuis kivy.core.window._window_sdl2 importer _WindowSDL2Storage
[CRITIQUE] [App ] Impossible d'obtenir une fenêtre, abandonnez.
````
Cela ne fonctionne même pas si je cd
directement dans le répertoire à côté de SDL2.dll
avant d'exécuter python3
Bon, il y a plusieurs choses en jeu ici :
.dll
doit exister dans ce répertoire...\site-packages\kivy\deps\sdl2\__init__.py
est chargé et pointe vers le .dll
Jusqu'à présent, je n'ai pas pu le reproduire, mais 3. est quelque chose qui ne peut pas être exclu.
Une autre chose que vous pouvez essayer : ouvrez une invite de commande et pointez le PATH directement sur le dossier sdl2. Quelque chose comme:
\> set PATH=C:\Users\USER\AppData\Roaming\Python\share\sdl2\bin;%PATH%
@dolang Eh bien, il semble que l'ajout du dossier $# SDL2.dll
%PATH%
aux correctifs %PATH%... fait partie de cette erreur. img_sdl2
n'est plus "ignoré", mais il est toujours "Impossible de trouver un fournisseur Windows valable". Il a également donné un message d'erreur légèrement différent (presque exclusivement étendu ?)
[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
J'ai confirmé en ajoutant et en supprimant à plusieurs reprises cela du PATH que la présence de img_sdl2
dans la section "ignoré" en dépend, et que le texte d'erreur étendu apparaît ou disparaît selon qu'il peut trouver SDL2 ou non.
Maintenant, la dépendance glew
devrait avoir un dossier juste à côté ( share\glew\bin
). Que se passe-t-il si vous ajoutez cela aussi ?
Ah !
Ainsi, sous Windows, il peut être "résolu" en ajoutant %AppData%\Python\share\glew\bin;%AppData%\Python\share\sdl2\bin;
à PATH
:
cmd /C "PATH=%AppData%\Python\share\glew\bin;%AppData%\Python\share\sdl2\bin;%PATH% && python3 -c ^"from kivy.core.window._window_sdl2 import _WindowSDL2Storage^""
Mais malheureusement ce n'est pas une solution en soi
Comment les bibliothèques pip-installed-python sont-elles censées se frayer un chemin dans les PATH
lesquelles elles doivent se trouver pour fonctionner ? (Un redémarrage était insuffisant)
C'était juste un indice pour moi pour savoir si les bibliothèques sont réellement bloquées ou non. Heureusement qu'ils ne le sont pas.
Comme indiqué ci-dessus (point 2.), vous pouvez voir que si vous ouvrez le __init__.py
dans site-packages\kivy\deps\...
, mais cela devrait fonctionner immédiatement. Maintenant, je dois trouver un moyen de casser le mien exactement comme dans votre cas. :le sourire:
Cela sert-il à quelque chose ?
````
importer l'APD
pdb.run()
InterruptionClavier
agneau
InterruptionClavier
pdb.run("depuis kivy.core.window._window_sdl2 import _WindowSDL2Storage")(1) ()
(Pdb) s
--Appeler--(966)_trouver_et_charger()
(Pdb)(968)_trouver_et_charger()
(Pdb)
--Appeler--(143)__init__()
(Pdb)(144)__init__()
(Pdb)(145)__init__()
(Pdb)
--Retourner--(145)__init__()->Aucun
(Pdb)
--Appeler--(147)__enter__()
(Pdb)(148)__enter__()
(Pdb)
--Appeler--(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)
Erreur de clé : '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)
--Appeler--(58)__init__()
(Pdb)(59)__init__()
(Pdb)(60)__init__()
(Pdb)(61)__init__()
(Pdb)(62)__init__()
(Pdb)(63)__init__()
(Pdb)(64)__init__()
(Pdb)
--Retourner--(64)__init__()->Aucun
(Pdb)(176)_get_module_lock()
(Pdb)(187)_get_module_lock()
(Pdb)(189)_get_module_lock()
(Pdb)(191)_get_module_lock()
(Pdb)
--Retourner--(191)_get_module_lock()->_ModuleLock('... 1869402554208
(Pdb)(149)__enter__()
(Pdb)
--Appeler--(78)acquérir()
(Pdb)(84)acquérir()
(Pdb)(85)acquérir()
(Pdb)(86)acquérir()
(Pdb)(87)acquérir()
(Pdb)(88)acquérir()
(Pdb)(89)acquérir()
(Pdb)(90)acquérir()
(Pdb)(91)acquérir()
(Pdb)(92)acquérir()
(Pdb)(101)acquérir()
(Pdb)
Erreur de clé : 12616(101)acquérir()
(Pdb)
--Retourner--(101)acquérir()->Aucun
(Pdb)
Erreur de clé : 12616(149)__enter__()
(Pdb)
--Retourner--(149)__enter__()->Aucun
(Pdb)
Erreur de clé : 12616(968)_trouver_et_charger()
(Pdb)
--Retourner--(968)_find_and_load()->Aucun
(Pdb)
Erreur de clé : 12616(1) ()
(Pdb)
--Retourner--(1) ()->Aucun
(Pdb)
Erreur de clé : 12616
c:\program filespython36\lib\bdb.py(434)run()
-> exec(cmd, globals, locaux)
(Pdb)
c:\program filespython36\lib\bdb.py(435)run()
-> sauf BdbQuit :
(Pdb)
c:\program filespython36\lib\bdb.py(438)run()
-> self.quitting = Vrai
(Pdb)
Traceback (dernier appel le plus récent) :
Déposer "", ligne 1, dans
Fichier "C:\Program Files\Python36\lib\pdb.py", ligne 1572, en cours
Pdb().run(instruction, globales, locales)
Fichier "C:\Program Files\Python36\lib\bdb.py", ligne 434, en cours
exec(cmd, globals, locaux)
Déposer "", ligne 1, dans
Déposer "", ligne 968, dans _find_and_load
Déposer "", ligne 149, dans __enter__
Déposer "", ligne 101, dans acquérir
Erreur de clé : 12616
````
Bien,
d'autres tests révèlent qu'il fonctionne correctement si LES DEUX kivy.deps.glew
ET kivy.deps.sdl2
sont installés en mode Administrateur.
Je pense que le problème réside dans le fait que trop de choses sont codées en dur dans site-packages\kivy\deps\*\__init__.py
Je me demande s'il existe un moyen plus canonique d'ajouter des DLL à partir de packages Pip dans le PATH
...?
Bonne question, mais je ne sais pas comment l'équipe est arrivée à sa solution actuelle. Au moins, nous pourrions le réduire maintenant, c'est donc un pas en avant.
Au fait, connaissez-vous virtualenv
. Je les utilise normalement et j'ai rarement des problèmes. Donc pour l'instant vous pouvez faire (admin):
py -m pip install virtualenv
Compte d'utilisateur normal ( .venv
est mon nom préféré du répertoire du virtualenv, changez comme vous le souhaitez):
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
ajouter éventuellement : python -m pip install kivy.deps.gstreamer
J'espère que j'ai bien compris.
Configuration 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).
J'ai le même problème et je le résous et ma solution n'est pas bonne. Je copie toutes les dll (share/sdl2 share/angle share/glew share/gstreamer) dans un référentiel et j'ajoute ce référentiel à la variable path.
J'ai installé kivy en utilisant le droit d'administrateur (https://kivy.org/docs/installation/installation-windows.html) et j'ai essayé de l'exécuter en utilisant le droit d'utilisateur (utilisateur laurent ) puis une erreur se produit : [CRITICAL] [Window ] Unable to find n'importe quel fournisseur de fenêtre précieux.
sdl2 - ImportError : Échec du chargement de la DLL : le module spécifié est introuvable.
La copie de toutes les dll dans un nouveau dossier résout les problèmes. Ma question est alors Comment puis-je installer kivy pour exécuter kivy avec des privilèges d'utilisateur ?
PS désolé je ne suis pas bon en anglais et en python
Au fait, connaissez-vous
virtualenv
. Je les utilise normalement et j'ai rarement des problèmes. Donc pour l'instant vous pouvez faire (admin):py -m pip install virtualenv
Compte d'utilisateur normal (
.venv
est mon nom préféré du répertoire du virtualenv, changez comme vous le souhaitez):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
J'ai essayé d'utiliser virtualenv et cela n'a pas fonctionné. J'ai toujours une erreur similaire. J'ai également ajouté
C:\Program Files\Python37\share\sdl2\bin
etC:\Program Files\Python37\share\angle\bin
à mon PATH déjà. Et j'ai fait ce que je pense que @LaurentBerger a fait, copier ces deux fichiers dans un autre répertoire, puis ajouter ce répertoire au chemin. L'utilisation de virtualenv avec les deux options PATH ne fonctionnait pas non plus pour moi.
J'utilise python 3.7 donc j'ai installé kivy.deps.angle
au lieu de kivy.deps.glew
Journaux :
```(venv) C:\Users\henry\Documents\Side Projects\fps>py main.py
[INFO ] [Logger ] Enregistrer le journal dans 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 juin 2018, 04:59:51) [MSC v.1914 64 bits (AMD64)]
[INFO ] [Usine ] 194 symboles chargés
[INFO ] [Image ] Fournisseurs : img_tex, img_dds, img_sdl2, img_gif (img_pil, img_ffpyplayer ignorés)
[INFO ] [Texte ] Fournisseur : sdl2
[INFO ] [Fenêtre ] Fournisseur : sdl2
[CRITIQUE] [Window ] Impossible de trouver un fournisseur Windows valable.
sdl2 - ImportError : Échec du chargement de la DLL : le module spécifié est introuvable.
Fichier "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\site-packages\kivy\core__init__.py", ligne 67, dans core_select_lib
cls = cls()
Fichier "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\site-packages\kivy\core\window\window_sdl2.py", ligne 140, dans __init__
super(WindowSDL, self).__init__()
Fichier "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\site-packages\kivy\core\window__init__.py", ligne 968, dans __init__
self.create_window()
Fichier "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\site-packages\kivy\core\window\window_sdl2.py", ligne 272, dans create_window
self.plein écran, redimensionnable, état)
Fichier "kivy\core\window_window_sdl2.pyx", ligne 125, dans kivy.core.window._window_sdl2._WindowSDL2Storage.setup_window
Fichier "kivy\graphics\cgl.pyx", ligne 52, dans kivy.graphics.cgl.cgl_get_backend_name
Fichier "kivy\graphics\cgl.pyx", ligne 60, dans kivy.graphics.cgl.cgl_get_backend_name
Fichier "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\importlib__init__.py", ligne 127, dans import_module
return _bootstrap._gcd_import(name[level:], package, level)
Déposer "
Déposer "
Déposer "
Déposer "
Déposer "
Déposer "
Déposer "
[CRITIQUE] [App ] Impossible d'obtenir une fenêtre, abandonnez.
```
Sur ce sujet, j'ai vu mélanger des architectures de bibliothèques (Python en 64 bits, SDL2 en 32 bits), donc c'est un premier arrêt. Et oui, si vous avez mélangé l'arche, les bibliothèques ne seront pas du tout utilisées et Kivy ne fonctionnera pas.
L'installation de SDL2 via kivy.deps.sdl2 devrait fonctionner.
J'utilise Python 3.7 et j'obtiens cette erreur. la version kivy est la 1.10.1
comment dois-je le résoudre
même ici python 3.7, la version kivy est 1.10.1 et a essayé tous les moyens de charger la DLL mais ne montre aucune pitié.
Veuillez consulter https://github.com/kivy/kivy/issues/6342.
Ceci résout mon problème qui est le même que celui que vous aviez
J'espère que cela vous aidera
J'ai eu le même problème. Cette vidéo peut aider ceux qui sont visuels ! https://youtu.be/gt-qndBYrCQ
J'ai eu beaucoup de problèmes, mais j'ai réussi à les résoudre. Voici ce que j'ai appris (en utilisant PyCharm):
1) Vous ne pouvez pas installer Kivy sur Python 3.8. Si vous avez 3.8, revenez à 3.7.
2) J'ai installé tous les packages dont quelqu'un d'autre a posté une photo. Je posterai le mien ici. Accédez à votre interpréteur de projet et appuyez sur le bouton "+" pour tous les ajouter. Ils devraient s'installer avec succès.
3) Obtenait l'erreur de fenêtre sdl2. J'ai regardé cette courte vidéo (https://www.youtube.com/watch?v=e_jv8KsYBrs&t=212s) (que Dieu bénisse cette personne) et j'ai changé mes chemins dans mon environnement système.
4) J'ai ensuite réinstallé les dépendances du site Web de Kivy - ET ÇA A MARCHÉ !!!
J'espère que cela aide quelqu'un !!!!
Au fait, connaissez-vous
virtualenv
. Je les utilise normalement et j'ai rarement des problèmes. Donc pour l'instant vous pouvez faire (admin):py -m pip install virtualenv
Compte d'utilisateur normal (
.venv
est mon nom préféré du répertoire du virtualenv, changez comme vous le souhaitez):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
J'ai essayé d'utiliser virtualenv et cela n'a pas fonctionné. J'ai toujours une erreur similaire. J'ai également ajouté
C:\Program Files\Python37\share\sdl2\bin
etC:\Program Files\Python37\share\angle\bin
à mon PATH déjà. Et j'ai fait ce que je pense que @LaurentBerger a fait, copier ces deux fichiers dans un autre répertoire, puis ajouter ce répertoire au chemin. L'utilisation de virtualenv avec les deux options PATH ne fonctionnait pas non plus pour moi.J'utilise python 3.7 donc j'ai installé
kivy.deps.angle
au lieu dekivy.deps.glew
Journaux :
[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.
Essayez de copier manuellement les dossiers glew, sdl2 et __init__.py de ../site-packages/kivy_deps vers ../site-packages/kivy/deps.
Cela a fonctionné pour moi
Commentaire le plus utile
Bien,
d'autres tests révèlent qu'il fonctionne correctement si LES DEUX
kivy.deps.glew
ETkivy.deps.sdl2
sont installés en mode Administrateur.Je pense que le problème réside dans le fait que trop de choses sont codées en dur dans
site-packages\kivy\deps\*\__init__.py
Je me demande s'il existe un moyen plus canonique d'ajouter des DLL à partir de packages Pip dans le
PATH
...?