簡體   English   中英

sdl2 - ImportError: DLL load failed: The specified module could not be found and [CRITICAL] [App] Unable to get a Window, abort

[英]sdl2 - ImportError: DLL load failed: The specified module could not be found and [CRITICAL] [App] Unable to get a Window, abort

  • 蟒蛇:3.6.4
  • 操作系統:Windows 10
  • 基維: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()

我有同樣的問題。 我通過首先刪除 Kivy 及其依賴項解決了這個問題。

python -m pip uninstall kivy

python -m pip uninstall kivy.deps.sdl2

python -m pip uninstall kivy.deps.glew

python -m pip uninstall kivy.deps.gstreamer

python -m pip uninstall image

現在重新安裝除 gstreamer 之外的所有內容。

python -m pip install --upgrade pip wheel setuptools

python -m pip install docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew --extra-index-url https://kivy.org/downloads/packages/simple/

python -m pip install kivy

它解決了錯誤。 歸功於Ben R 的回答。

我遇到了同樣的問題,對我來說,解決方案是使用 virtualenv 而不是 venv。 這會強制 Kivy 使用特定的 Python 安裝。

  1. 下載並安裝 Python 3.7,因為似乎還不支持 3.8 ( https://www.python.org/downloads/release/python-376/ )

  2. 如果尚未安裝,請安裝 virtualenv

    pip install virtualenv

  3. 創建虛擬環境,指定新安裝的Python版本的路徑

    virtualenv --python=C:\\path\\to\\Python37\\python.exe my_venv

  4. 激活新的虛擬環境

    my_venv/Scripts/activate.bat

  5. 根據Javapocalypse 的回答安裝 kivy

     python -m pip install --upgrade pip wheel setuptools python -m pip install docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew extra-index-url https://kivy.org/downloads/packages/simple/ python -m pip install kivy

我在pyhton3.7中有同樣的錯誤。

這是錯誤。

C:\Users\Raghu\PycharmProjects\ex1\venv\Scripts\python.exe C:/Users/Raghu/PycharmProjects/ex1/main.py
[INFO   ] [Logger      ] Record log in C:\Users\Raghu\.kivy\logs\kivy_19-10-25_100.txt
[INFO   ] [Kivy        ] v1.11.1
[INFO   ] [Kivy        ] Installed at "C:\Users\Raghu\PycharmProjects\ex1\venv\lib\site-packages\kivy\__init__.py"
[INFO   ] [Python      ] v3.7.4 (tags/v3.7.4:e09359112e, Jul  8 2019, 19:29:22)              [MSC v.1916 32 bit (Intel)]
[INFO   ] [Python      ] Interpreter at "C:\Users\Raghu\PycharmProjects\ex1\venv\Scripts\python.exe"
[INFO   ] [Factory     ] 184 symbols loaded
[INFO   ] [Image       ] Providers: img_tex, img_dds, img_gif (img_sdl2, img_pil, img_ffpyplayer ignored)
[CRITICAL] [Text        ] Unable to find any valuable Text provider. Please enable debug logging (e.g. add -d if running from the command line, or change the log level in the config) and re-run your app to identify potential causes
sdl2 - ImportError: DLL load failed: The specified module could not be found.
     File "C:\Users\Raghu\PycharmProjects\ex1\venv\lib\site-packages\kivy\core\__init__.py", line 63, in core_select_lib
fromlist=[modulename], level=0)
  File "C:\Users\Raghu\PycharmProjects\ex1\venv\lib\site-packages\kivy\core\text\text_sdl2.py", line 13, in <module>
from kivy.core.text._text_sdl2 import (_SurfaceContainer, _get_extents,

pil - ModuleNotFoundError: No module named 'PIL'
  File "C:\Users\Raghu\PycharmProjects\ex1\venv\lib\site-packages\kivy\core\__init__.py", line 63, in core_select_lib
fromlist=[modulename], level=0)
  File "C:\Users\Raghu\PycharmProjects\ex1\venv\lib\site-packages\kivy\core\text\text_pil.py", line 7, in <module>
    from PIL import Image, ImageFont, ImageDraw

[CRITICAL] [App         ] Unable to get a Text provider, abort.

Process finished with exit code 1    

如果是2019年並且您像我一樣(仍在尋找解決方案),此視頻可能會有所幫助! https://youtu.be/gt-qndBYrCQ

先生,請使用 venv 我遇到了同樣的錯誤,但我使用 venv 解決了它。 請創建一個 virtualenv 並使用您的安裝過程進行安裝。 有用

我在 Python 3.9.1 上遇到了同樣的問題。

在默認用戶模式下重新安裝 kivy.deps.sdl2、kivy.deps.glew、kivy 對我不起作用。

然后我找到了這個評論,它建議在管理員模式下安裝這些包。 有用。 https://github.com/kivy/kivy/issues/5677#issuecomment-389990608

保留您的主文件名main.py否則,它將引發此錯誤。 (在做任何事情之前檢查這個)。

07-2021,Python 3.9

問題是尚未設置 PATH 變量(從 Windows 應用商店安裝 Python)。

**來自 Windows 菜單/瀏覽器:

刪除程序

在開始時刪除任何 python 安裝,這將使生活更輕松**

最好從python.org下載 python 並作為管理員安裝為具有已知路徑的“自定義”(對於所有用戶)IE c:/programs/python39

請務必檢查:

添加到系統的PATH變量

現在,安裝 python 后 - 我們注銷並重新登錄。然后在開始菜單中查找 CMD 並運行!!! 作為管理員

管理員位置,按照網站上的說明進行安裝: https : //kivy.org/doc/stable-1.10.1/installation/installation-windows.html

IE:

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

這解決了整個問題。

附言。 如果你寫 angin 命令 IE:

    python -m pip install kivy.deps.angle

文件位置應顯示為 IE:

c:/programs/python39 ....

不是你的主目錄

(但是,如果您以普通用戶身份運行cmd就會這樣……然后它就不起作用了……但是如果您的主目錄中有所有文件,則必須在開始之前刪除所有文件:

python -m pip卸載docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew

然后(作為管理員): python -m pip install docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew

如果您啟用調試日志記錄 ( -d ),您將獲得更多詳細信息:

嘗試從“PROJECT\\venv\\lib\\site-packages\\kivy\\core\\window\\_window_sdl2.cp37-win_amd64.pyd”導入“sdl2”提供程序失敗。 當缺少依賴項,或者如果 Windows PATH 上存在相同依賴項 dll 的多個副本並且它們彼此不兼容時,通常會遇到此錯誤。 如果您正在混合安裝(例如不同的 python 安裝,如 anaconda python 和系統 python),或者如果另一個不相關的程序將其目錄添加到 PATH,就會發生這種情況。 請檢查您的 PATH 和 python 安裝是否存在潛在問題。 要進一步解決“DLL 加載失敗”錯誤,請從dependencywalker.com 下載“Dependency Walker”(64 或32 位版本-匹配您的python 位數)並將環境變量KIVY_SDL2_DEPENDENCY_WALKER 設置為下載的depends.exe 文件的完整路徑並重新運行您的應用程序以生成錯誤報告

使用 Dependency Walker 將 PYTHON37.DLL 顯示為缺少的內容。

我懷疑必須使用 Python 的傳統系統安裝,而不是來自 Microsoft Store 的安裝。 我不確定商店版本是否在任何地方都有可訪問的 DLL。

我也嘗試從源代碼構建而不是使用輪子,但是--no-binary=kivy.deps.sdl2結果:

錯誤:找不到滿足kivy-deps.sdl2~=0.3.1要求的版本; sys_platform == "win32"(來自 kivy)(來自版本:無)
錯誤:沒有找到 kivy-deps.sdl2~=0.3.1 的匹配分布; sys_platform == “win32”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM