Ошибка Kivy (Python 2.7): ошибка импорта SDL2

Я пытаюсь использовать kivy в своем проекте Python 2.7 (в среде PyCharm - Windows 10), но я получаю следующую ошибку.

Если кто-то может мне помочь? Спасибо!

PS: я много раз пытался удалить / переустановить библиотеки и т. Д. И делать то, что предлагалось для подобных сообщений, но это не работает: Kivy не работает (ошибка: не удается найти какого-либо ценного провайдера Windows).

[INFO   ] [Logger      ] Record log in C:\Users\cyril\.kivy\logs\kivy_18-03-25_0.txt
 C:\Users\cyril\venv\lib\site-packages\kivy\modules\__init__.py:128: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal
   if path not in sys.path:
[INFO   ] [Kivy        ] v1.10.0
[INFO   ] [Python      ] v2.7.14 (v2.7.14:84471935ed, Sep 16 2017, 20:19:30) [MSC v.1500 32 bit (Intel)]
[INFO   ] [Factory     ] 194 symbols loaded
[INFO   ] [Image       ] Providers: img_tex, img_dds, img_gif (img_sdl2, img_pil, img_ffpyplayer ignored)
[CRITICAL] [Window      ] Unable to find any valuable Window provider.
sdl2 - ImportError: DLL load failed: Le module sp�cifi� est introuvable.
  File "C:\Users\cyril\venv\lib\site-packages\kivy\core\__init__.py", line 59, in core_select_lib
    fromlist=[modulename], level=0)
  File "C:\Users\cyril\venv\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.

Process finished with exit code 1

8 ответов

Решение

проблема

Он ищет зависимости Kivy (например, sdl2) в вашем virtualenv.

Решение

Я столкнулся с той же проблемой. Я сделал следующее, и это решило проблему.

Среда

  • Windows 10
  • Сообщество PyCharm
  • Python 3.5
  • Установленные зависимости Kivy (documentstils, pygments, pypiwin32, kivy.deps.sdl2, kivy.deps.glew, kivy.deps.gstreamer) и для Python 3.5+ (kivy.deps.angle)

PyCharm IDE

  1. Откройте проект
  2. Нажмите Файл
  3. Нажмите Настройки...
  4. Нажмите Project Interpreter
  5. На правой панели щелкните раскрывающийся список для Project Interpreter.
  6. Выберите место, где установлен интерпретатор Python, например C:\Users\ имя пользователя \AppData\Local\Programs\Python\Python35\python.exe
  7. Нажимайте ОК, пока не выйдете из окна настроек
  8. Запустите вашу программу

Выход

Img01 - ошибка SDL2 Img02 - Настройки интерпретатора Python перед изменением Img03 - Изменены настройки интерпретатора Python Img04 - Запустить приложение Kivy Img05 - SDL2

Если вы не установили все зависимости, то возникнет ошибка. Вместо Project Interpreter используйте терминал pycharm. Затем установите следующие

1.python -m pip install docutils pygments pypiwin32 kivy_deps.sdl2==0.1.* kivy_deps.glew==0.1.*

  1. python -m pip install kivy_deps.gstreamer==0.1.*

  2. python -m pip install kivy_deps.angle==0.1.*

  3. python -m pip install kivy==1.11.1

Все проверил, переустановил и т. Д. По-прежнему не повезло, но после использования опции -d (отладка) сообщение об ошибке расширилось и предположило, что на пути может быть другой sdl2.dll. После некоторых проб и ошибок я нашел один в windows\system32. При перемещении в сторону ошибка исчезла.

Я попробовал запустить приложение в виртуальной среде, и оно сработало.

Давайте будем реальными, используем виртуальную среду. Документация Kivys также настоятельно рекомендует это.

Повторение этого шага всегда дает мне работоспособный пример kivy. Сначала удалите все библиотеки, связанные с kivy, которые вы уже установили.

python -m pip uninstall -y kivy.deps.glew kivy.deps.gstreamer kivy.deps.sdl2 kivy.deps.angle

Обновите pip, wheel, setuptools и setuptools

python -m pip install --upgrade pip wheel setuptools virtualenv

Создайте venv в папке вашего проекта и активируйте его

python -m virtualenv venv
venv\Scripts\activate 

(в bash поставьте впереди "источник".)

Установите зависимости kivys в свою виртуальную среду.

python -m pip install docutils pygments pypiwin32 kivy_deps.sdl2==0.1.* 

Если вам нужна поддержка видео и аудио:

python -m pip install kivy_deps.gstreamer==0.1.*

В Python 3.5+ вы можете выбрать использование Angle вместо glew, поэтому выполните либо /, либо:

python -m pip install kivy_deps.glew==0.1.*
python -m pip install kivy_deps.angle==0.1.*

Установить киви

python -m pip install kivy==1.11.1 kivy_examples==1.11.1

После этого сделайте

python venv\share\kivy-examples\demo\showcase\main.py

Источник: https://kivy.org/doc/stable/installation/installation-windows.html

Если по-прежнему возникает ошибка с сообщением "[CRITICAL] [App ] Unable to get a Window, abort.", CMD:

set USE_SDL2=1
set USE_GSTREAMER=1

Терминал:

export USE_SDL2=1
export USE_GSTREAMER=1

Вместо запуска в вашей среде IDE попробуйте запустить программу в cmd или powershell с помощьюpython <filename>. Меня устраивает.

Большое спасибо, это сработало! Я просто добавил "оригинальный" интерпретатор python, установленный в C:\Python27\python.exe, в список Project Interpreter и выбрал его, как вы сказали.

С наилучшими пожеланиями,

Просто невозможно, попробовал все это с 3.7 64 на win10, то же исключение... Эта вещь просто не работает, думаю, мне придется попробовать Beeware. Разочарование

Другие вопросы по тегам