Ошибка 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
- Откройте проект
- Нажмите Файл
- Нажмите Настройки...
- Нажмите Project Interpreter
- На правой панели щелкните раскрывающийся список для Project Interpreter.
- Выберите место, где установлен интерпретатор Python, например C:\Users\ имя пользователя \AppData\Local\Programs\Python\Python35\python.exe
- Нажимайте ОК, пока не выйдете из окна настроек
- Запустите вашу программу
Выход
Если вы не установили все зависимости, то возникнет ошибка. Вместо Project Interpreter используйте терминал pycharm. Затем установите следующие
1.python -m pip install docutils pygments pypiwin32 kivy_deps.sdl2==0.1.* kivy_deps.glew==0.1.*
python -m pip install kivy_deps.gstreamer==0.1.*
python -m pip install kivy_deps.angle==0.1.*
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. Разочарование