Kivy: Laden der Kivy-sdl2-DLL fehlgeschlagen

Erstellt am 26. MĂ€rz 2018  Â·  29Kommentare  Â·  Quelle: kivy/kivy

  • Python: 3.6.4
  • Betriebssystem: Windows 10
  • Kyvy: 1.10.0
  • Kivy-Installationsmethode:
    python -m pip install --upgrade Pip Wheel Setuptools
    python -m pip installiere docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew
    python -m pip installiere kivy.deps.gstreamer
    python -m pip installiere kivy.deps.angle
    python -m pip installiere kivy
    python -m pip installiere kivy_examples
    python -m pip installiere Pillow
    python -m pip installieren cython
    python -m pip installiere PyEnchant

Beschreibung

Hallo, ich versuche, den Beispielcode aus der Installation von Kivy auszufĂŒhren. Das Folgende ist der Fehler, den ich zurĂŒckerhalte. Jede Hilfe wĂ€re großartig. Ich habe versucht, frĂŒhere Anfragen zu Ă€hnlichen Problemen zu prĂŒfen, aber nichts davon hat bisher funktioniert.

[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 und Protokolle

Code, den ich versuche auszufĂŒhren:

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

Hilfreichster Kommentar

Brunnen,

Einige weitere Tests zeigen, dass es korrekt funktioniert, wenn sowohl kivy.deps.glew auch kivy.deps.sdl2 im Administratormodus installiert sind.

Ich denke, das Problem liegt darin, dass zu viel in site-packages\kivy\deps\*\__init__.py fest codiert ist

Ich frage mich, ob es eine kanonischere Möglichkeit gibt, DLLs aus Pip-Paketen in die PATH ... hinzuzufĂŒgen?

Alle 29 Kommentare

Was bedeutet das auf Ihrem System (PowerShell):

python -m pip freeze | select-string cython

@dolang heißt es
'select-string' wird nicht als interner oder externer Befehl erkannt,
lauffÀhiges Programm oder Batch-Datei.

ja sorry das war nicht klar. Sie mĂŒssen das in PowerShell ausfĂŒhren. Es ist der Ersatz fĂŒr die DOS-Eingabeaufforderung.

Verwenden Sie Win + x und wÀhlen Sie es aus, oder geben Sie an der Eingabeaufforderung powershell ein. Sie haben PS als die ersten 2 Buchstaben der Eingabeaufforderung.

Oh ok. In der Powershell steht

Cython==0.27.3

In Ordnung, habe versucht, es mit einer Ă€hnlichen, nicht gleichen Umgebung ohne GlĂŒck zu reproduzieren. Im Grunde besagt der Fehler, dass die Bibliothek sdl2 fehlt. Aber es hĂ€tte mit python -m pip install kivy.deps.sdl2 installiert werden sollen, was irgendwo in Ihrer ursprĂŒnglichen Beschreibung steht.

Ich muss versuchen, dies erneut auf einem anderen Computer zu reproduzieren. Sie könnten in der Zwischenzeit versuchen, pip uninstall ... + pip install ... diese AbhÀngigkeit zu erstellen.

Habe es jetzt auf einer anderen Maschine versucht und das gleiche Ergebnis erhalten (dh es funktioniert hier). Was hast du fĂŒr:

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

es sollte Ihnen geben: kivy.deps.sdl2==0.1.17 .

Alternativ, wenn Sie mehrere Python-Interpreter installiert haben:

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

Wenn einer dieser beiden Befehle nicht die obige Ausgabe liefert, versuchen Sie, kivy.deps.sdl2 neu zu installieren.

Wenn dies der Fall ist und es nicht funktioniert, fĂŒgen Sie bitte ein, was Sie erhalten:

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

Möglicherweise mĂŒssen Sie den 64-Bit-Python-Interpreter neu installieren. (Nur eine Vermutung, noch nicht sicher.)

Das habe ich gemacht und

Holen Sie sich kivy.deps.sdl2==0.1.17

Ich habe 32-Bit-Python deinstalliert und stattdessen 64-Bit-Python installiert, erhalte jedoch immer noch diesen Fehler

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

Nun, ich war mir nicht sicher, ob 32/64-Bit hier das Problem sein könnte. Aber kannst du nachsehen, ob das .dll wirklich da ist?

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

Wenn es da ist, blockiert es vielleicht Ihr Virenscanner oder Ihre Firewall (oder eine andere wirklich aufdringliche Software)? Das ist etwas, was nicht passieren sollte, imho.

Edit: habe mir meine Installation noch einmal angesehen und eine laufende Anwendung in Process Hacker geöffnet. Diese SDL2.dll wurde speziell fĂŒr PyPI erstellt und sieht aus, als wĂ€re sie unsigniert. AbhĂ€ngig von Ihren Windows-Richtlinieneinstellungen kann es deshalb automatisch blockiert werden. Vielleicht hilft folgendes weiter?

Windows 10: Datei in Windows 10 entsperren

Laut einem frĂŒheren Kommentar haben Sie Cython 0.27.3 und das Konsolenprotokoll sagt Kivy v1.10.0 ... diese Versionen sind nicht kompatibel, obwohl ich nicht genau weiß, warum der fehlende Fensteranbieter der erste Hinweis auf dieses Problem ist. .. Vielleicht versuchen Sie es entweder mit Cython 0.25.2 (kompatibel mit 1.10) + installieren Sie Kivy neu, oder alternativ pip install kivy==master mit Ihrer aktuellen Cython-Version?

Ich bekomme dieses Problem auch mit 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
Name: Kyvi
Version: 1.10.0
Zusammenfassung: Eine Softwarebibliothek zur schnellen Entwicklung hardwarebeschleunigter Multitouch-Anwendungen.
Homepage: http://kivy.org
Autor: Kivy Team und andere Mitwirkende
Autor-E-Mail: [email protected]
Lizenz: MIT
Speicherort: c:\users\jedingtoappdata\roaming\python\python36\site-packages
Benötigt: Docutils, Kivy-Garden, Pygmente

Benötigt von:

Name: kivy.deps.glew
Version: 0.1.9
Zusammenfassung: Umgepackte binÀre AbhÀngigkeit von Kivy.
Homepage: http://kivy.org/
Autor: Kivy Crew
Autor-E-Mail: [email protected]
Lizenz: MIT
Speicherort: c:\users\jedingtoappdata\roaming\python\python36\site-packages
Erfordert:

Benötigt von:

Name: kivy.deps.sdl2
Version: 0.1.17
Zusammenfassung: Umgepackte binÀre AbhÀngigkeit von Kivy.
Homepage: http://kivy.org/
Autor: Kivy Crew
Autor-E-Mail: [email protected]
Lizenz: zlib
Speicherort: c:\users\jedingtoappdata\roaming\python\python36\site-packages
Erfordert:
Benötigt von:
````

lÀuft es gibt folgendes:

````
Python 3.6.5 (v3.6.5:f59c0932b4, 28. MĂ€rz 2018, 17:00:18) [MSC v.1900 64 Bit (AMD64)] auf win32
Geben Sie "Hilfe", "Copyright", "Credits" oder "License" ein, um weitere Informationen zu erhalten.

aus der kivy.app Import-App
[INFO ] [Logger ] Log in C:\Users\jedingto.kivy\logs\kivy_18-05-17_4.txt aufzeichnen
[INFO] [Kivy] v1.10.0
[INFO] [Python] v3.6.5 (v3.6.5:f59c0932b4, 28. MĂ€rz 2018, 17:00:18) [MSC v.1900 64 Bit (AMD64)]
[INFO ] [Factory ] 194 Symbole geladen
[INFO] [Bild] Anbieter: img_tex, img_dds, img_gif (img_sdl2, img_pil, img_ffpyplayer ignoriert)
aus kivy.uix.widget Widget importieren
Klasse PongGame (Widget):
... bestehen
...
Klasse PongApp (App):
... def bauen (selbst):
... PongGame() zurĂŒckgeben
...
PongApp().run()
[KRITISCH] [Fenster] Es konnte kein wertvoller Fensteranbieter gefunden werden.
sdl2 - ImportError: DLL-Laden fehlgeschlagen: Das angegebene Modul konnte nicht gefunden werden.
Datei "C:\Users\jedingtoAppData\Roaming\Python\Python36\site-packages\kivy\core__init__.py", Zeile 59, in core_select_lib
fromlist=[Modulname], Ebene=0)
Datei "C:\Users\jedingtoAppData\Roaming\Python\Python36\site-packages\kivy\core\window\window_sdl2.py", Zeile 26, in
aus kivy.core.window._window_sdl2 import _WindowSDL2Storage

[KRITISCH] [App] Fenster kann nicht abgerufen werden, Abbruch.
````

Trotz der Existenz der SDL2-DLL:

````
dir %AppData%\Python\sharesdl2\bin\SDL2.dll
Das Volume in Laufwerk C: ist XXXXXX
Seriennummer des Volumens ist 0000-0000

Verzeichnis von C:\Users\USERAppData\Roaming\Python\sharesdl2\bin

2018-05-17 11:33 Uhr 1.254.400 SDL2.dll
1 Datei(en) 1.254.400 Byte
0 Dir(s) 161.199.689.728 Byte frei
````

und ich sollte hinzufĂŒgen, dass dies auch dann auftritt, wenn ich kivy.deps.sdl aus dem --user -Modus deinstalliere und es ĂŒber den Administratormodus in C:\Program Files\Python\share\sdl2 installiere, der Fehler ist derselbe:

````

PongApp().run()
[KRITISCH] [Fenster] Es konnte kein wertvoller Fensteranbieter gefunden werden.
sdl2 - ImportError: DLL-Laden fehlgeschlagen: Das angegebene Modul konnte nicht gefunden werden.
Datei "C:\Users\jedingtoAppData\Roaming\Python\Python36\site-packages\kivy\core__init__.py", Zeile 59, in core_select_lib
fromlist=[Modulname], Ebene=0)
Datei "C:\Users\jedingtoAppData\Roaming\Python\Python36\site-packages\kivy\core\window\window_sdl2.py", Zeile 26, in
aus kivy.core.window._window_sdl2 import _WindowSDL2Storage

[KRITISCH] [App] Fenster kann nicht abgerufen werden, Abbruch.

````

Es funktioniert nicht einmal, wenn ich cd direkt in das Verzeichnis neben SDL2.dll , bevor ich $# python3

Okay, hier spielen mehrere Dinge eine Rolle:

  1. das .dll muss in diesem Verzeichnis existieren
  2. die Datei ...\site-packages\kivy\deps\sdl2\__init__.py wird geladen und zeigt auf die .dll
  3. Windows (oder eine andere aufdringliche Software wie einige Virenscanner) selbst blockiert das Laden nicht

Bisher konnte ich es nicht reproduzieren, aber 3. ist etwas, das nicht ausgeschlossen werden kann.

Eine andere Sache, die Sie versuchen könnten: Öffnen Sie eine Eingabeaufforderung und zeigen Sie mit PATH direkt auf den Ordner sdl2. Etwas wie:

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

@dolang Nun, es scheint, dass das HinzufĂŒgen des SDL2.dll -Ordners zu den %PATH% -Fixes ... einen Teil dieses Fehlers behebt. img_sdl2 wird jetzt nicht mehr "ignoriert", aber es ist immer noch "Es konnte kein wertvoller Windows-Anbieter gefunden werden". Es gab auch eine etwas andere (fast ausschließlich erweiterte?) Fehlermeldung

[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

Ich habe durch wiederholtes HinzufĂŒgen und Entfernen von PATH bestĂ€tigt, dass das Vorhandensein von img_sdl2 im Abschnitt "Ignoriert" davon abhĂ€ngt und dass der erweiterte Fehlertext angezeigt wird oder verschwindet, je nachdem, ob SDL2 gefunden werden konnte oder nicht.

Jetzt sollte die AbhĂ€ngigkeit glew direkt daneben einen Ordner haben ( share\glew\bin ). Was passiert, wenn Sie das auch hinzufĂŒgen?

Aha!

Unter Windows kann es also "gelöst" werden, indem %AppData%\Python\share\glew\bin;%AppData%\Python\share\sdl2\bin; PATH vorangestellt wird:

cmd /C "PATH=%AppData%\Python\share\glew\bin;%AppData%\Python\share\sdl2\bin;%PATH% && python3 -c ^"from kivy.core.window._window_sdl2 import _WindowSDL2Storage^""

Aber leider ist das per se keine Lösung

Wie sollen die Pip-installierten Python-Bibliotheken ihren Weg in die PATH finden, in denen sie sich befinden mĂŒssen, um zu funktionieren? (Ein Neustart war nicht ausreichend)

Das war fĂŒr mich nur ein Anhaltspunkt, um herauszufinden, ob die Bibliotheken tatsĂ€chlich gesperrt sind oder nicht. Gut, dass sie es nicht sind.

Wie oben gesagt (Punkt 2.), sieht man das, wenn man das __init__.py in site-packages\kivy\deps\... öffnet, aber das sollte out of the box funktionieren. Jetzt muss ich einen Weg finden, meinen genau wie in deinem Fall zu brechen. :LÀcheln:

Ist dies von Nutzen?

````

pdb importieren
pdb.run()
KeyboardInterrupt
Lamm
KeyboardInterrupt
pdb.run("aus kivy.core.window._window_sdl2 import _WindowSDL2Storage")
(1)()
(Pdb) s
--Anruf--
(966)_find_and_load()
(PDB)
(968)_find_and_load()
(PDB)
--Anruf--
(143)__init__()
(PDB)
(144)__init__()
(PDB)
(145)__init__()
(PDB)
--ZurĂŒckkehren--
(145)__init__()->Keine
(PDB)
--Anruf--
(147)__Eingabe__()
(PDB)
(148)__Eingabe__()
(PDB)
--Anruf--
(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)
--Anruf--
(58)__init__()
(PDB)
(59)__init__()
(PDB)
(60)__init__()
(PDB)
(61)__init__()
(PDB)
(62)__init__()
(PDB)
(63)__init__()
(PDB)
(64)__init__()
(PDB)
--ZurĂŒckkehren--
(64)__init__()->Keine
(PDB)
(176)_get_module_lock()
(PDB)
(187)_get_module_lock()
(PDB)
(189)_get_module_lock()
(PDB)
(191)_get_module_lock()
(PDB)
--ZurĂŒckkehren--
(191)_get_module_lock()->_ModuleLock('... 1869402554208
(PDB)
(149)__Eingabe__()
(PDB)
--Anruf--
(78)erwerben()
(PDB)
(84)erwerben()
(PDB)
(85)erwerben()
(PDB)
(86)erwerben()
(PDB)
(87)erwerben()
(PDB)
(88)erwerben()
(PDB)
(89)erwerben()
(PDB)
(90)erwerben()
(PDB)
(91)erwerben()
(PDB)
(92)erwerben()
(PDB)
(101)erwerben()
(PDB)
SchlĂŒsselfehler: 12616
(101)erwerben()
(PDB)
--ZurĂŒckkehren--
(101) erwerben () -> Keine
(PDB)
SchlĂŒsselfehler: 12616
(149)__Eingabe__()
(PDB)
--ZurĂŒckkehren--
(149)__enter__()->Keine
(PDB)
SchlĂŒsselfehler: 12616
(968)_find_and_load()
(PDB)
--ZurĂŒckkehren--
(968)_find_and_load() -> Keine
(PDB)
SchlĂŒsselfehler: 12616
(1)()
(PDB)
--ZurĂŒckkehren--
(1)() -> Keine
(PDB)
SchlĂŒsselfehler: 12616
c:\Programmepython36\lib\bdb.py(434)run()
-> exec(cmd, global, lokal)
(PDB)
c:\Programmepython36\lib\bdb.py(435)run()
-> außer BdbQuit:
(PDB)
c:\Programmepython36\lib\bdb.py(438)run()
-> self.quitting = True
(PDB)
Traceback (letzter Aufruf zuletzt):
Datei "“, Zeile 1, ein
Datei "C:\Program Files\Python36\lib\pdb.py", Zeile 1572, in AusfĂŒhrung
Pdb().run(Anweisung, global, lokal)
Datei "C:\Program Files\Python36\lib\bdb.py", Zeile 434, in AusfĂŒhrung
exec(cmd, global, lokal)
Datei "“, Zeile 1, ein
Datei "", Zeile 968, in _find_and_load
Datei "", Zeile 149, in __enter__
Datei "", Zeile 101, in erwerben
SchlĂŒsselfehler: 12616
````

Brunnen,

Einige weitere Tests zeigen, dass es korrekt funktioniert, wenn sowohl kivy.deps.glew auch kivy.deps.sdl2 im Administratormodus installiert sind.

Ich denke, das Problem liegt darin, dass zu viel in site-packages\kivy\deps\*\__init__.py fest codiert ist

Ich frage mich, ob es eine kanonischere Möglichkeit gibt, DLLs aus Pip-Paketen in die PATH ... hinzuzufĂŒgen?

Gute Frage, aber ich weiß nicht, wie das Team zu seiner aktuellen Lösung gekommen ist. Zumindest könnten wir es jetzt eingrenzen, das ist also ein Schritt nach vorne.

Kennen Sie ĂŒbrigens virtualenv . Ich benutze normalerweise diese und habe selten Probleme. Im Moment könnten Sie also (Administrator) Folgendes tun:

py -m pip install virtualenv

Normales Benutzerkonto ( .venv ist mein bevorzugter Name des Verzeichnisses der virtuellen Umgebung, Àndern Sie es nach Belieben):

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

optional hinzufĂŒgen: python -m pip install kivy.deps.gstreamer

Hoffe, ich habe das alles richtig verstanden.

Konfiguration 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).

Ich habe das gleiche Problem und ich löse es und meine Lösung ist nicht gut. Ich kopiere alle DLLs (share/sdl2 share/angle share/glew share/gstreamer) in ein Repository und fĂŒge dieses Repository der Pfadvariablen hinzu.

Ich habe kivy mit Administratorrechten (https://kivy.org/docs/installation/installation-windows.html) installiert und versucht, es mit Benutzerrechten (Benutzer laurent) auszufĂŒhren, dann tritt der Fehler auf: [CRITICAL] [Window] Unable to find jeder wertvolle Windows-Anbieter.
sdl2 - ImportError: DLL-Laden fehlgeschlagen: Das angegebene Modul konnte nicht gefunden werden.

Das Kopieren aller DLLs in einen neuen Ordner löst Probleme. Meine Frage ist dann, wie kann ich kivy installieren, um kivy mit Benutzerrechten auszufĂŒhren?

PS Entschuldigung, ich bin nicht gut in Englisch und Python

Kennen Sie ĂŒbrigens virtualenv . Ich benutze normalerweise diese und habe selten Probleme. Im Moment könnten Sie also (Administrator) Folgendes tun:

py -m pip install virtualenv

Normales Benutzerkonto ( .venv ist mein bevorzugter Name des Verzeichnisses der virtuellen Umgebung, Àndern Sie es nach Belieben):

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

Ich habe versucht, virtualenv zu verwenden, und es hat nicht funktioniert. Ich habe immer noch einen Ă€hnlichen Fehler. Ich habe auch bereits C:\Program Files\Python37\share\sdl2\bin und C:\Program Files\Python37\share\angle\bin zu meinem PATH hinzugefĂŒgt. Und ich habe getan, was @LaurentBerger meiner Meinung nach getan hat, diese beiden Dateien in ein anderes Verzeichnis kopiert und dieses Verzeichnis dann zum Pfad hinzugefĂŒgt. Die Verwendung von virtualenv mit den beiden PATH-Optionen hat bei mir ebenfalls nicht funktioniert.

Ich verwende Python 3.7, also habe ich kivy.deps.angle anstelle von kivy.deps.glew installiert

Protokolle:
```(venv) C:\Users\henry\Documents\Side Projects\fps>py main.py
[INFO ] [Logger ] Log in C:\Users\henry.kivy\logs\kivy_18-09-15_16.txt aufzeichnen
[INFO] [Kivy] v1.10.1
[INFO] [Python] v3.7.0 (v3.7.0:1bf9cc5093, 27. Juni 2018, 04:59:51) [MSC v.1914 64 Bit (AMD64)]
[INFO ] [Factory ] 194 Symbole geladen
[INFO] [Bild] Anbieter: img_tex, img_dds, img_sdl2, img_gif (img_pil, img_ffpyplayer ignoriert)
[INFO ] [Text ] Anbieter: sdl2
[INFO ] [Fenster ] Anbieter: sdl2
[KRITISCH] [Fenster] Es konnte kein wertvoller Fensteranbieter gefunden werden.
sdl2 - ImportError: DLL-Laden fehlgeschlagen: Das angegebene Modul konnte nicht gefunden werden.
Datei "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\site-packages\kivy\core__init__.py", Zeile 67, in core_select_lib
cls = cls()
Datei "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\site-packages\kivy\core\window\window_sdl2.py", Zeile 140, in __init__
super(WindowSDL, selbst).__init__()
Datei "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\site-packages\kivy\core\window__init__.py", Zeile 968, in __init__
self.create_window()
Datei „C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\site-packages\kivy\core\window\window_sdl2.py“, Zeile 272, in create_window
self.fullscreen, grĂ¶ĂŸenverĂ€nderbar, Zustand)
Datei „kivy\core\window_window_sdl2.pyx“, Zeile 125, in kivy.core.window._window_sdl2._WindowSDL2Storage.setup_window
Datei "kivy\graphics\cgl.pyx", Zeile 52, in kivy.graphics.cgl.cgl_get_backend_name
Datei "kivy\graphics\cgl.pyx", Zeile 60, in kivy.graphics.cgl.cgl_get_backend_name
Datei "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\importlib__init__.py", Zeile 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
Datei "", Zeile 1006, in _gcd_import
Datei "", Zeile 983, in _find_and_load
Datei "", Zeile 967, in _find_and_load_unlocked
Datei "", Zeile 670, in _load_unlocked
Datei "", Zeile 583, in module_from_spec
Datei "", Zeile 1043, in create_module
Datei "", Zeile 219, in _call_with_frames_removed

[KRITISCH] [App] Fenster kann nicht abgerufen werden, Abbruch.
```

Zu diesem Thema habe ich das Mischen von Bibliotheksarchitekturen (Python in 64 Bit, SDL2 in 32 Bit) gesehen, das ist also ein erster Halt. Und ja, wenn Sie den Bogen gemischt haben, werden die Bibliotheken ĂŒberhaupt nicht verwendet und Kivy funktioniert nicht.
Die Installation von SDL2 ĂŒber kivy.deps.sdl2 sollte funktionieren.

Ich verwende Python 3.7 und erhalte diesen Fehler. kivy-Version ist 1.10.1
wie soll ich es lösen

Gleich hier Python 3.7 , Kivy-Version ist 1.10.1 und hat alle Möglichkeiten ausprobiert, die DLL zu laden, zeigt aber keine Gnade.

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

Dies löst mein Problem, das dasselbe ist, das Sie hatten
Ich hoffe, das wird Ihnen helfen

Ich hatte das gleiche Problem. Dieses Video kann denen helfen, die visuell sind! https://youtu.be/gt-qndBYrCQ

Hatte viele Probleme, konnte sie aber lösen. Folgendes habe ich gelernt (mit PyCharm):
1) Sie können Kivy nicht auf Python 3.8 installieren. Wenn Sie 3.8 haben, gehen Sie zurĂŒck zu 3.7.
2) Ich habe alle Pakete installiert, von denen jemand anderes ein Bild gepostet hat. Ich poste meine hier. Gehen Sie zu Ihrem Projektinterpreter und klicken Sie auf die SchaltflĂ€che „+“, um sie alle hinzuzufĂŒgen. Sie sollten erfolgreich installiert werden.
pkg1
pkg2
3) Erhielt den Fenster-sdl2-Fehler. Habe mir dieses kurze Video (https://www.youtube.com/watch?v=e_jv8KsYBrs&t=212s) angesehen (möge Gott diese Person segnen) und meine Pfade in meiner Systemumgebung geÀndert.
4) Ich habe dann die AbhÀngigkeiten von der Kivy-Website neu installiert - UND ES FUNKTIONIERT!!!

Hoffe das hilft jemandem!!!!

Kennen Sie ĂŒbrigens virtualenv . Ich benutze normalerweise diese und habe selten Probleme. Im Moment könnten Sie also (Administrator) Folgendes tun:

py -m pip install virtualenv

Normales Benutzerkonto ( .venv ist mein bevorzugter Name des Verzeichnisses der virtuellen Umgebung, Àndern Sie es nach Belieben):

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

Ich habe versucht, virtualenv zu verwenden, und es hat nicht funktioniert. Ich habe immer noch einen Ă€hnlichen Fehler. Ich habe auch bereits C:\Program Files\Python37\share\sdl2\bin und C:\Program Files\Python37\share\angle\bin zu meinem PATH hinzugefĂŒgt. Und ich habe getan, was @LaurentBerger meiner Meinung nach getan hat, diese beiden Dateien in ein anderes Verzeichnis kopiert und dieses Verzeichnis dann zum Pfad hinzugefĂŒgt. Die Verwendung von virtualenv mit den beiden PATH-Optionen hat bei mir ebenfalls nicht funktioniert.

Ich verwende Python 3.7, also habe ich kivy.deps.angle anstelle von kivy.deps.glew installiert

Protokolle:

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

Versuchen Sie, die Ordner glew, sdl2 und __init__.py manuell von ../site-packages/kivy_deps nach ../site-packages/kivy/deps zu kopieren.
Es hat fĂŒr mich funktioniert

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen