Kivy: Kivy sdl2DLLのロードに失敗しました

作成日 2018年03月26日  ·  29コメント  ·  ソース: kivy/kivy

  • Python:3.6.4
  • OS:Windows 10
  • Kivy:1.10.0
  • Kivyのインストール方法:
    python -m pip install --upgrade pip Wheel setuptools
    python -m pip install docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew
    python -m pip install kivy.deps.gstreamer
    python -m pip install kivy.deps.angle
    python -m pip install kivy
    python -m pip install kivy_examples
    python -m pip install Pillow
    python -m pip install cython
    python -m pip install PyEnchant

説明

こんにちは、Kivyのインストールからサンプルコードを実行しようとしています。 以下は私が受け取ったエラーです。 どんな助けでも素晴らしいでしょう。 私は以前の同様の問題に関する問い合わせを調べてみましたが、これまでのところ、それらについて提案されたものは何も機能していません。

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

コードとログ

私が実行しようとしているコード:

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

最も参考になるコメント

上手、

さらにテストを行うと、 kivy.deps.glewkivy.deps.sdl2の両方が管理者モードでインストールされている場合に正しく機能することがわかります。

問題は、 site-packages\kivy\deps\*\__init__.pyにハードコーディングされすぎていることにあると思います

PipパッケージからPATHにDLLを追加するより標準的な方法があるのだろうか...?

全てのコメント29件

これはあなたのシステム(PowerShell)で何を言いますか:

python -m pip freeze | select-string cython

@dolangそれは言う
'select-string'は、内部コマンドまたは外部コマンドとして認識されません。
操作可能なプログラムまたはバッチファイル。

ええ、それは明確ではありませんでした。 PowerShellで実行する必要があります。 これは、DOSプロンプトの代わりです。

Win + xを使用して選択するか、コマンドプロンプトでpowershellと入力します。 プロンプトの最初の2文字としてPSがあります。

大丈夫。 PowerShellではそれは言います

Cython==0.27.3

了解しました。運がなくても、同じではない同様の環境で再現しようとしました。 基本的に、エラーの内容は、 sdl2ライブラリが欠落していることです。 ただし、元の説明のどこかにあるpython -m pip install kivy.deps.sdl2でインストールする必要があります。

これを別のマシンでもう一度再現する必要があります。その間に、その依存関係をpip uninstall ... + pip install ...にしてみてください。

今すぐ別のマシンで試してみましたが、同じ結果が得られました(つまり、ここで機能します)。 あなたは何のために持っていますか:

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

それはあなたに与えるはずです: kivy.deps.sdl2==0.1.17

または、複数のPythonインタープリターがインストールされている場合:

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

これらの2つのコマンドのいずれかで上記の出力が得られない場合は、 kivy.deps.sdl2を再インストールしてみてください。

それらが機能し、それが機能しない場合は、得られたものを貼り付けてください。

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

たぶん、64ビットのPythonインタープリターを再インストールする必要があります。 (推測ですが、まだわかりません。)

私はそれをしました

kivy.deps.sdl2 == 0.1.17を取得します

32ビットをアンインストールして代わりに64ビットPythonをインストールしましたが、それでもこのエラーが発生します

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

さて、ここで32/64ビットが問題になるかどうかはわかりませんでした。 しかし、 .dllが実際にそこにあるかどうかを確認できますか?

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

そこにある場合は、ウイルススキャナーがブロックしているのでしょうか、それともファイアウォール(またはその他の非常に煩わしいソフトウェア)である可能性がありますか? これは起こるべきことではありません、私見。

編集:私のインストールをもう一度見て、ProcessHackerで実行中のアプリケーションを開きました。 このSDL2.dllはPyPI用にカスタムビルドされており、署名されていないように見えます。 Windowsのポリシー設定によっては、そのために自動的にブロックされる可能性があります。 たぶん、以下が役立つでしょうか?

Windows 10:Windows10でファイルのブロックを解除する

以前のコメントによると、cython 0.27.3があり、コンソールログにKivy v1.10.0と記載されています...これらのバージョンは互換性がありませんが、欠落しているウィンドウプロバイダーがこの問題の最初の手がかりである理由は正確にはわかりません。 .. cython 0.25.2(1.10と互換性があります)+ kivyを再インストールするか、または現在のcythonバージョンでpip install kivy==masterを使用してみてください。

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
名前:Kivy
バージョン:1.10.0
概要:ハードウェアアクセラレーションによるマルチタッチアプリケーションを迅速に開発するためのソフトウェアライブラリ。
ホームページ:http: //kivy.org
著者:Kivyチームと他の貢献者
著者-メール: [email protected]
ライセンス:MIT
場所:c:\ users \ jedingtoappdata \ roaming \ python \ python36 \ site-packages
必要なもの:docutils、Kivy-Garden、pygments

必須-作成者:

名前:kivy.deps.glew
バージョン:0.1.9
概要:Kivyの再パッケージ化されたバイナリ依存関係。
ホームページ:http: //kivy.org/
著者:Kivy Crew
著者-メール: [email protected]
ライセンス:MIT
場所:c:\ users \ jedingtoappdata \ roaming \ python \ python36 \ site-packages
必要:

必須-作成者:

名前:kivy.deps.sdl2
バージョン:0.1.17
概要:Kivyの再パッケージ化されたバイナリ依存関係。
ホームページ:http: //kivy.org/
著者:Kivy Crew
著者-メール: [email protected]
ライセンス:zlib
場所:c:\ users \ jedingtoappdata \ roaming \ python \ python36 \ site-packages
必要:
必須-作成者:
`` ``

それを実行すると、次のようになります。

`` ``
Python 3.6.5(v3.6.5:f59c0932b4、2018年3月28日、17:00:18)[MSC v.1900 64ビット(AMD64)] on win32
詳細については、「help」、「copyright」、「credits」、または「license」と入力してください。

kivy.appからインポートアプリ
[INFO] [Logger]ログをC:\ Users \ jedingto.kivy \ logs \ kivy_18-05-17_4.txtに記録します
[情報] [Kivy] v1.10.0
[情報] [Python] v3.6.5(v3.6.5:f59c0932b4、2018年3月28日、17:00:18)[MSC v.1900 64ビット(AMD64)]
[情報] [ファクトリ] 194個のシンボルがロードされました
[情報] [画像]プロバイダー:img_tex、img_dds、img_gif(img_sdl2、img_pil、img_ffpyplayerは無視されます)
kivy.uix.widgetからインポートウィジェット
クラスPongGame(Widget):
... パス
..。
クラスPongApp(App):
... def build(self):
... PongGame()を返す
..。
PongApp()。run()
[クリティカル] [ウィンドウ]貴重なウィンドウプロバイダーが見つかりません。
sdl2-ImportError:DLLのロードに失敗しました:指定されたモジュールが見つかりませんでした。
ファイル「C:\ Users \ jedingtoAppData \ Roaming \ Python \ Python36 \ site-packages \ kivy \ core__init __。py」、59行目、core_select_lib
fromlist = [モジュール名]、レベル= 0)
ファイル "C:\ Users \ jedingtoAppData \ Roaming \ Python \ Python36 \ site-packages \ kivy \ core \ window \ window_sdl2.py"、26行目
kivy.core.window._window_sdl2からインポート_WindowSDL2Storage

[クリティカル] [アプリ]ウィンドウを取得できません。中止してください。
`` ``

SDL2 DLLが存在するにもかかわらず、次のようになります。

`` ``
dir%AppData%\ Python \ sharesdl2 \ bin \ SDL2.dll
ドライブCのボリュームはXXXXXXです
ボリュームのシリアル番号は0000〜0000です

C:\ Users \ USERAppData \ Roaming \ Python \ sharesdl2 \ binのディレクトリ

2018-05-17 11:33 AM 1,254,400 SDL2.dll
1ファイル1,254,400バイト
0ディレクトリ161,199,689,728バイト空き
`` ``

また、 --user kivy.deps.sdlをアンインストールし、管理者モードでC:\Program Files\Python\share\sdl2にインストールしても、これが発生することを付け加えておきます。エラーは同じです。

`` ``

PongApp()。run()
[クリティカル] [ウィンドウ]貴重なウィンドウプロバイダーが見つかりません。
sdl2-ImportError:DLLのロードに失敗しました:指定されたモジュールが見つかりませんでした。
ファイル「C:\ Users \ jedingtoAppData \ Roaming \ Python \ Python36 \ site-packages \ kivy \ core__init __。py」、59行目、core_select_lib
fromlist = [モジュール名]、レベル= 0)
ファイル "C:\ Users \ jedingtoAppData \ Roaming \ Python \ Python36 \ site-packages \ kivy \ core \ window \ window_sdl2.py"、26行目
kivy.core.window._window_sdl2からインポート_WindowSDL2Storage

[クリティカル] [アプリ]ウィンドウを取得できません。中止してください。

`` ``

python3を実行する前にSDL2.dllの隣のディレクトリにcdを入れても、機能しません。

了解しました。ここではいくつかのことが行われています。

  1. .dllはそのディレクトリに存在する必要があります
  2. ファイル...\site-packages\kivy\deps\sdl2\__init__.pyが読み込まれ、 .dllをポイントします
  3. Windows(または一部のウイルススキャナーなどの他の侵入型ソフトウェア)自体は、Windowsの読み込みをブロックしません

今のところ再現できていませんが、3。除外できないものです。

もう1つ試すことができるのは、コマンドプロンプトを開き、PATHをsdl2フォルダーに直接向けることです。 何かのようなもの:

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

@dolangええと、 SDL2.dllフォルダを%PATH%修正に追加するようです....そのエラーの一部です。 img_sdl2は「無視」されなくなりましたが、「貴重なウィンドウプロバイダーが見つかりません」のままです。 また、わずかに異なる(ほとんど排他的に拡張された?)エラーメッセージが表示されました

[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

PATHに繰り返し追加したり削除したりして、「無視された」セクションのimg_sdl2の存在はそれに依存し、SDL2が見つかるかどうかに応じて、展開されたエラーテキストが表示または非表示になることを確認しました。

これで、 glew依存関係のすぐ隣にフォルダー( share\glew\bin )が必要になります。 それも追加するとどうなりますか?

あはは!

したがって、Windowsでは、 %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^""

しかし残念ながら、これはそれ自体が解決策ではありません

pip-installed-python-librariesは、機能するために必要なPATHにどのように組み込まれるのでしょうか。 (再起動が不十分でした)

これは、ライブラリが実際にブロックされているかどうかを確認するための手がかりにすぎませんでした。 彼らがそうではないのは良いことです。

上で述べたように(ポイント2)、 site-packages\kivy\deps\... __init__.pyを開くとわかりますが、それは箱から出してすぐに機能するはずです。 今、私はあなたの場合とまったく同じように私のものを壊す方法を見つける必要があります。 :笑顔:

これは役に立ちますか?

`` ``

pdbをインポートする
pdb.run()
KeyboardInterrupt
子羊
KeyboardInterrupt
pdb.run( "from kivy.core.window._window_sdl2 import _WindowSDL2Storage")
(1)()
(Pdb)s
- 電話 -
(966)_find_and_load()
(Pdb)
(968)_find_and_load()
(Pdb)
- 電話 -
(143)__ init __()
(Pdb)
(144)__ init __()
(Pdb)
(145)__ init __()
(Pdb)
- 戻る -
(145)__ init __()->なし
(Pdb)
- 電話 -
(147)__ enter __()
(Pdb)
(148)__ enter __()
(Pdb)
- 電話 -
(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)
- 電話 -
(58)__ init __()
(Pdb)
(59)__ init __()
(Pdb)
(60)__ init __()
(Pdb)
(61)__ init __()
(Pdb)
(62)__ init __()
(Pdb)
(63)__ init __()
(Pdb)
(64)__ init __()
(Pdb)
- 戻る -
(64)__ init __()->なし
(Pdb)
(176)_get_module_lock()
(Pdb)
(187)_get_module_lock()
(Pdb)
(189)_get_module_lock()
(Pdb)
(191)_get_module_lock()
(Pdb)
- 戻る -
(191)_get_module_lock()-> _ ModuleLock( '... 1869402554208
(Pdb)
(149)__ enter __()
(Pdb)
- 電話 -
(78)acquire()
(Pdb)
(84)acquire()
(Pdb)
(85)acquire()
(Pdb)
(86)acquire()
(Pdb)
(87)acquire()
(Pdb)
(88)acquire()
(Pdb)
(89)acquire()
(Pdb)
(90)acquire()
(Pdb)
(91)acquire()
(Pdb)
(92)acquire()
(Pdb)
(101)acquire()
(Pdb)
KeyError:12616
(101)acquire()
(Pdb)
- 戻る -
(101)acquire()->なし
(Pdb)
KeyError:12616
(149)__ enter __()
(Pdb)
- 戻る -
(149)__ enter __()->なし
(Pdb)
KeyError:12616
(968)_find_and_load()
(Pdb)
- 戻る -
(968)_find_and_load()->なし
(Pdb)
KeyError:12616
(1)()
(Pdb)
- 戻る -
(1)()->なし
(Pdb)
KeyError:12616
c:\ program filespython36 \ lib \ bdb.py(434)run()
-> exec(cmd、globals、locals)
(Pdb)
c:\ program filespython36 \ lib \ bdb.py(435)run()
-> BdbQuitを除く:
(Pdb)
c:\ program filespython36 \ lib \ bdb.py(438)run()
-> self.quitting = True
(Pdb)
トレースバック(最後の最後の呼び出し):
ファイル ""、1行目、
ファイル "C:\ Program Files \ Python36 \ lib \ pdb.py"、行1572、実行中
Pdb()。run(ステートメント、グローバル、ローカル)
ファイル "C:\ Program Files \ Python36 \ lib \ bdb.py"、行434、実行中
exec(cmd、globals、locals)
ファイル ""、1行目、
ファイル ""、行968、_find_and_load
ファイル ""、149行目、__ enter__
ファイル ""、101行目、取得中
KeyError:12616
`` ``

上手、

さらにテストを行うと、 kivy.deps.glewkivy.deps.sdl2の両方が管理者モードでインストールされている場合に正しく機能することがわかります。

問題は、 site-packages\kivy\deps\*\__init__.pyにハードコーディングされすぎていることにあると思います

PipパッケージからPATHにDLLを追加するより標準的な方法があるのだろうか...?

良い質問ですが、チームが現在の解決策にどのように到達したのかわかりません。 少なくとも今はそれを絞り込むことができるので、それは一歩前進です。

ちなみに、あなたはvirtualenvに精通していますか。 私は通常それらを使用し、問題が発生することはめったにありません。 だから今のところあなたは(管理者)を行うことができます:

py -m pip install virtualenv

通常のユーザーアカウント( .venvはvirtualenvのディレクトリの私の好みの名前です。好きなように変更してください):

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

オプションで追加: python -m pip install kivy.deps.gstreamer

大丈夫だといいのですが。

構成ウィンドウ10python 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).

私は同じ問題を抱えています、そして私はそれを解決します、そして私の解決策は良いものではありません。 リポジトリ内のすべてのdll(share / sdl2 share / angle share / glew share / gstreamer)をコピーし、このリポジトリをパス変数に追加します。

管理者権限(https://kivy.org/docs/installation/installation-windows.html)を使用してkivyをインストールし、ユーザー権限(user laurent)を使用して実行しようとすると、エラーが発生します:[CRITICAL] [Window]見つかりません貴重なウィンドウプロバイダー。
sdl2-ImportError:DLLのロードに失敗しました:指定されたモジュールが見つかりませんでした。

新しいフォルダにすべてのdllをコピーすると、問題が解決します。 私の質問は、どうすればkivyをインストールしてユーザー権限でkivyを実行できますか?

PS申し訳ありませんが私は英語とPythonが苦手です

ちなみに、あなたはvirtualenvに精通していますか。 私は通常それらを使用し、問題が発生することはめったにありません。 だから今のところあなたは(管理者)を行うことができます:

py -m pip install virtualenv

通常のユーザーアカウント( .venvはvirtualenvのディレクトリの私の好みの名前です。好きなように変更してください):

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

virtualenvを使用してみましたが、機能しませんでした。 それでも同様のエラーが発生しました。 また、すでにC:\Program Files\Python37\share\sdl2\binC:\Program Files\Python37\share\angle\binをPATHに追加しました。 そして、 @ LaurentBergerが行ったと思うことを行い、これら2つのファイルを別のディレクトリにコピーしてから、そのディレクトリをパスに追加します。 2つのPATHオプションでvirtualenvを使用しても、私にはうまくいきませんでした。

私はPython3.7を使用しているので、 kivy.deps.glew kivy.deps.angleをインストールしました

ログ:
`` `(venv)C:\ Users \ henry \ Documents \ Side Projects \ fps> py main.py
[INFO] [Logger]ログをC:\ Users \ henry.kivy \ logs \ kivy_18-09-15_16.txtに記録します
[情報] [Kivy] v1.10.1
[情報] [Python] v3.7.0(v3.7.0:1bf9cc5093、2018年6月27日、04:59:51)[MSC v.1914 64ビット(AMD64)]
[情報] [ファクトリ] 194個のシンボルがロードされました
[情報] [画像]プロバイダー:img_tex、img_dds、img_sdl2、img_gif(img_pil、img_ffpyplayerは無視されます)
[情報] [テキスト]プロバイダー:sdl2
[情報] [ウィンドウ]プロバイダー:sdl2
[クリティカル] [ウィンドウ]貴重なウィンドウプロバイダーが見つかりません。
sdl2-ImportError:DLLのロードに失敗しました:指定されたモジュールが見つかりませんでした。
ファイル「C:\ Users \ henry \ DOCUME〜1 \ SIDEPR〜1 \ fps \ venv \ lib \ site-packages \ kivy \ core__init __。py」、67行目、core_select_lib
cls = cls()
ファイル "C:\ Users \ henry \ DOCUME〜1 \ SIDEPR〜1 \ fps \ venv \ lib \ site-packages \ kivy \ core \ window \ window_sdl2.py"、行140、__ init__
super(WindowSDL、self).__ init __()
ファイル "C:\ Users \ henry \ DOCUME〜1 \ SIDEPR〜1 \ fps \ venv \ lib \ site-packages \ kivy \ core \ window__init__。py"、行968、__ init__
self.create_window()
ファイル "C:\ Users \ henry \ DOCUME〜1 \ SIDEPR〜1 \ fps \ venv \ lib \ site-packages \ kivy \ core \ window \ window_sdl2.py"、行272、create_window
self.fullscreen、サイズ変更可能、状態)
ファイル "kivy \ core \ window_window_sdl2.pyx"、125行目、kivy.core.window._window_sdl2._WindowSDL2Storage.setup_window
ファイル "kivy \ graphics \ cgl.pyx"、52行目、kivy.graphics.cgl.cgl_get_backend_name
ファイル "kivy \ graphics \ cgl.pyx"、60行目、kivy.graphics.cgl.cgl_get_backend_name
import_moduleのファイル "C:\ Users \ henry \ DOCUME〜1 \ SIDEPR〜1 \ fps \ venv \ lib \ importlib__init__。py"、行127
return _bootstrap._gcd_import(name [level:]、package、level)
ファイル ""、1006行目、_gcd_import
ファイル ""、行983、_find_and_load
ファイル ""、967行目、_find_and_load_unlocked
ファイル ""、行670、_load_unlocked
ファイル ""、583行目、module_from_spec
ファイル ""、1043行目、create_module内
ファイル ""、219行目、_call_with_frames_removed

[クリティカル] [アプリ]ウィンドウを取得できません。中止してください。
`` `

この問題については、ライブラリアーキテクチャ(64ビットのPython、32ビットのSDL2)の混合を見てきましたので、それが最初の目的です。 はい、アーチを混ぜると、ライブラリはまったく使用されず、Kivyは機能しません。
kivy.deps.sdl2を介したSDL2のインストールは機能するはずです。

Python 3.7を使用していますが、このエラーが発生します。 kivyバージョンは1.10.1です
どのように解決すればよいですか

ここでも同じpython3.7、kivyバージョンは1.10.1で、DLLをロードするためにあらゆる方法を試しましたが、容赦はありません。

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

これはあなたが持っていたものと同じ私の問題を解決します
これがあなたのお役に立てば幸いです

私も同じ問題を抱えていました。 このビデオは視覚的な人に役立つかもしれません! https://youtu.be/gt-qndBYrCQ

多くの問題がありましたが、なんとか解決できました。 これが私が(PyCharmを使って)学んだことです:
1)Python3.8にKivyをインストールすることはできません。 3.8をお持ちの場合は、3.7に戻ります。
2)他の誰かが写真を投稿したすべてのパッケージをインストールしました。 ここに投稿します。 プロジェクトインタプリタに移動し、「+」ボタンを押してすべてを追加します。 正常にインストールされるはずです。
pkg1
pkg2
3)ウィンドウsdl2エラーが発生していました。 この短いビデオ(https://www.youtube.com/watch?v=e_jv8KsYBrs&t=212s)を見て(神がこの人を祝福してくれますように)、システム環境での私の道を変えました。
4)次に、Kivy Webサイトから依存関係を再インストールしました-そして、それは機能しました!!!

これが誰かを助けることを願っています!!!!

ちなみに、あなたはvirtualenvに精通していますか。 私は通常それらを使用し、問題が発生することはめったにありません。 だから今のところあなたは(管理者)を行うことができます:

py -m pip install virtualenv

通常のユーザーアカウント( .venvはvirtualenvのディレクトリの私の好みの名前です。好きなように変更してください):

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

virtualenvを使用してみましたが、機能しませんでした。 それでも同様のエラーが発生しました。 また、すでにC:\Program Files\Python37\share\sdl2\binC:\Program Files\Python37\share\angle\binをPATHに追加しました。 そして、 @ LaurentBergerが行ったと思うことを行い、これら2つのファイルを別のディレクトリにコピーしてから、そのディレクトリをパスに追加します。 2つのPATHオプションでvirtualenvを使用しても、私にはうまくいきませんでした。

私はPython3.7を使用しているので、 kivy.deps.glew kivy.deps.angleをインストールしました

ログ:

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

glew、sdl2フォルダーと__init__。pyを../site-packages/kivy_depsから../site-packages/kivy/depsに手動でコピーしてみてください。
それは私のために働いた

このページは役に立ちましたか?
0 / 5 - 0 評価