こんにちは、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()
これはあなたのシステム(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のポリシー設定によっては、そのために自動的にブロックされる可能性があります。 たぶん、以下が役立つでしょうか?
以前のコメントによると、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
を入れても、機能しません。
了解しました。ここではいくつかのことが行われています。
.dll
はそのディレクトリに存在する必要があります...\site-packages\kivy\deps\sdl2\__init__.py
が読み込まれ、 .dll
をポイントします今のところ再現できていませんが、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.glew
とkivy.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\bin
とC:\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)
ファイル "
ファイル "
ファイル "
ファイル "
ファイル "
ファイル "
ファイル "
[クリティカル] [アプリ]ウィンドウを取得できません。中止してください。
`` `
この問題については、ライブラリアーキテクチャ(64ビットのPython、32ビットのSDL2)の混合を見てきましたので、それが最初の目的です。 はい、アーチを混ぜると、ライブラリはまったく使用されず、Kivyは機能しません。
kivy.deps.sdl2を介したSDL2のインストールは機能するはずです。
Python 3.7を使用していますが、このエラーが発生します。 kivyバージョンは1.10.1です
どのように解決すればよいですか
ここでも同じpython3.7、kivyバージョンは1.10.1で、DLLをロードするためにあらゆる方法を試しましたが、容赦はありません。
これはあなたが持っていたものと同じ私の問題を解決します
これがあなたのお役に立てば幸いです
私も同じ問題を抱えていました。 このビデオは視覚的な人に役立つかもしれません! https://youtu.be/gt-qndBYrCQ
多くの問題がありましたが、なんとか解決できました。 これが私が(PyCharmを使って)学んだことです:
1)Python3.8にKivyをインストールすることはできません。 3.8をお持ちの場合は、3.7に戻ります。
2)他の誰かが写真を投稿したすべてのパッケージをインストールしました。 ここに投稿します。 プロジェクトインタプリタに移動し、「+」ボタンを押してすべてを追加します。 正常にインストールされるはずです。
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\bin
とC:\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に手動でコピーしてみてください。
それは私のために働いた
最も参考になるコメント
上手、
さらにテストを行うと、
kivy.deps.glew
とkivy.deps.sdl2
の両方が管理者モードでインストールされている場合に正しく機能することがわかります。問題は、
site-packages\kivy\deps\*\__init__.py
にハードコーディングされすぎていることにあると思いますPipパッケージから
PATH
にDLLを追加するより標準的な方法があるのだろうか...?