Установил python kivy. Почему не работает первая программа?
Все pip установил, kivy установилось без ошибок.
Пробовал и с pycharm запускать, та же ошибка.
Уже удалял всё полностью и устанавливал заново. То же самое.
Хочу винду переустановить, но что-то мне подсказывает и это не поможет.
pip install pillow
Вот у вас красным по белому написано:
что нет модуля PIL в наличии. Скачайте дистрибутив в виде инсталлятора или вон как я выше показал поставьте его. Хотя у вас винда... ничего не гарантирую.
Читайте внимсательно сообщения об ошибках. Обычно там всё есть. А на этом ресурсе принято прводить полный текст сообщения об ошибке в виде текста, а не в виде скриншота.
У тебя ругается на отсутствие либы PIL. Установи её черезpip install PIL
И ещё. У тебя в путях есть кириллица (юзер "Ира"). Это очень часто является проблемой для разного рода внутренних библиотек и не только в питоне. Ну не дружат они с кириллицей.
Это если не умеешь их готовить. Все внутренние библиотеки, если правильно сними работать, отлично переваривают хоть арабскую вязь в путях (хотя шутки шутками, на счет задомнаперёдового письма не верен=).
Developer, да что там готовить-то?
Правила простые:
- входящие в прогу строки надо конвертировать из байтов в юникод. Для этого надо понимать в какой они кодировке. Для линукса это обычно utf-8, для винды исторически там зоопарк из cp1251, win866 и utf-8. Но! Если данные поступают из stdin то у него либо указана кодировка (.encoding) - так бывает, если stdin подключен к терминалу или запускается из шелла, и тогда нужно конвертировать из указанной кодировки. Либо не указана - так бывает, если stdin присоединили как pipe, конвейер или файл. В этом случае нужно знать в какой кодировке у вас закодирован файл или какая кодировка на выходе конвейера перед вашим скриптом. Если это всё под вашим контролем, то я советую везде использовать utf-8 и НИКОГДА не использовать восьмибитные ущербные древние устаревшие как окаменевшее дерьмо мамонта кодировки.
На выходе из программы должен происходить обратный процесс.
Надо сказать, что стандартный print и stdout.write получая строки правильно конвертирует их в целевую кодировку, если эта кодировка указана в stdout.encoding. Нужно учесть, что если у вас терминал, куда смотрит stdout в cp1251 или win866, то при всём желании вы туда не сможете записать смайлики, символ рубля и любые символы, не представленные в однобайтовой кодировке. Учитывайте это и делайте явную конвертацию с заменой непригодных символов.
Обычно все библиотеки, которые работают с файловой системой отлично понимают юникод. Проблемы бывает когда им пытаются дать уже закодированные и порой неправильно закодированные строки. Не делайте так.
звучит красиво, но на практике постоянный геморрой.
И, опять же, ты пишешь "Обычно все библиотеки, которые работают с файловой системой отлично понимают юникод. .". "Обычно...". Нужно полагать, что бывают НЕ ОБЫЧНЫЕ ситуации?
Developer, я пишу "обычно" потому, что всегда допускаю возможность каких-то проблем или ошибки. Практика показывает, что большинство проблем с кодировками происходит не из-за плохой поддержки юникода стандартными (или даже нестандартными) библиотеками, а из-за банальных ошибок или непонимания программиста как правильно обрабатывать данные на входе и на выходе.
И избегать кириллических имён в имен пользователя - это "страусиная" политика, полумера, которая не сделает из вас профессионала, не добавит вам контроля и понимания как работает ваш код внутри. Потом мы слышим от таких программистов: "А у меня всё работает". На начальных этапах освоения дисциплины надо не избегать мутных и непонятных тем, а, наоборот, пока есть энтузиазм бросаться на них и до конца разбираться в вопросе. Благо есть ресурсы вроде этого, где подскажут и ответят на конкретные вопросы, помогут понять в кукую сторону копать.
Любой "геморрой" - это следствие прошлой "недолеченной" проблемы. Нужно копать до полного понимания, иначе какой смысл идти в эту профессию? Чтобы быть вечным "шаманом", погрязнувшим в своём культе Карго и не понимающим до конца что как и почему работает, и почему что-то может не работать?