С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python: PyGame
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
6 / 5 / 2
Регистрация: 14.10.2014
Сообщений: 79

PyGame тормозит при "недозагрузке"

15.01.2021, 20:47. Показов 3916. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дело происходит на Raspberry Pi 3B. Имеется скрипт на питоне, использующий пигейм и активную работу с графикой, в т.ч. полноэкранные картинки 1920х1080. Все отлично работает, когда используется полная версия Raspbian с десктопом, запуск скрипта производится из командной строки терминала, например - python3 ta.py

Теперь пришло время сделать скрипт автозапускаемым, прописываю запуск в /еtc/rc.local После ребута, и первичного запуска десктопа (появляется фоновая картинка, системная строка, в общем гуи загрузился), скрипт как хотелось, запускается. НО!... С жуткими тормозами вывода на экран поверхностей в пигейме. Полноэкранная картинка буквально секунду прорисовывается сверху вниз. Все остальные алгоритмы софта работают штатно, тормозит только графика.

Не особо желая в проекте иметь полноценный десктоп за ненадобностью, ставлю оську в варианте лайт - без тесктопа, только командная строка. Садомазо с наполнением пустой системы всем необходимым, опускаю. В ходе которых кстати, установилась пигейм 2.0.1., которая начала вываливать ошибки при загрузке файла, типа это не штатный виндоуз BMP-файл. Снес установленный пигейм и увидел, что в системе остался 1.9.4, который и был в полноценном первом варианте. Запускаю скрипт - и вижу те же самые тормоза!!!!

Первая версия следствия, что использовав лайтовую оську, либо использовав автозапуск через /еtc/rc.local , запуск скрипта производится в момент, когда в полной версии что то еще не загрузилось в системе, влияющее на работу графике, а в лайтовой системе отсутствовало вообще.

Прошу совета, где искать корень проблемы. Еще попробую сделать отложенный запуск скрипта, через несколько секунд, когда система полностью загрузится (для полной версии с десктопом), но хочется таки понять в чем тут дело. Заранее спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.01.2021, 20:47
Ответы с готовыми решениями:

При импорте pygame пишет что нет модуля pygame.base
Устанавливаю для kivy.Всё есть (sython,gsstreamer,kivy,pyscripter,python) , а вот фраем. pygame не работает.Почему?Что ещё надо для работы...

Ошибка в pygame AttributeError: 'pygame.Rect' object has no attribute 'blit'
Создаю игру, крестики нолики Почему возникает ошибка и как ее исправить? AttributeError: 'pygame.Rect' object has no attribute 'blit' ...

Pygame ошибка module ‘pygame’ has no ‘init’ member
Всем здравствуйте. Недавно начал работать с VS code и выдает такая ошибка. Прикрепляю полностью скрин. Нашел решение перед каждой...

12
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
16.01.2021, 14:34
Когда смотрел про искусственный интеллект code bullet ai drive car
он сказал что pygame нет двойной буферизации отсюда обязаны быть лаги и ему пришлось переписывать код мелкой игры с pygame на pyglet.
https://youtu.be/r428O_CMcpI?t=555

Добавлено через 2 минуты
не двойной буфер а какой-то вертикальной синхронизации =).
0
6 / 5 / 2
Регистрация: 14.10.2014
Сообщений: 79
16.01.2021, 17:22  [ТС]
Цитата Сообщение от Excalibur921 Посмотреть сообщение
pygame нет двойной буферизации отсюда обязаны быть лаги
Ну так если из терминала запускаю скрипт на питоне, все отлично работает! А если он запускается из автозапуска, либо из "голой" оськи, то с тормозами...
И еще, пробую использовать крон, чтобы попробовать еще вариант автозапуска. И что то пока тоже рогами в землю. Сделал скрипт start.sh:
Code
1
2
3
#!/bin/bash
cd /home/pi/TA
python3 ta.py
Пробую запустить его в рабочей директории: bash start.sh - все запускается. Прописываю в кронтаб:
Code
1
@reboot /home/pi/TA/start.sh
Перезапускаюсь. Ничего... Но судя по логам, крон отработал команду. Попробовал то же самое на голой оське, думаю, может работа программы под десктопом где спряталась Тоже ничего, но появилось сообщение что мне письмо. Читаю, оно от крона - там распечатка вывода работы моей проги и сообщение об ошибке в момент, когда пигейм пытался создать свой экран - "screen=pygame.display.set_mode(.... ..
Текст ошибки: pygame.error: Unable to open a console termonal
Таким образом, если я запускаю прогу из командной строки, то все норм, хотя тормозит. А если прога запускается из крона при ребуте, то пигейм выдает ошибку что не может создать экран. Перезапускаюсь на оське полной, с десктопом, лезу в папку где крон запостил письмо - и оно тоже есть и с тем же содержанием. Т.е. полная оська с десктопом при запуске проги через крон, тоже инициировала ошибку пигейма. С этим то что делать не подскажете? Как то запускать прогу через крон, но нужен какойто консольный терминал???? В общем пока только нарастают вопросы.
0
67 / 64 / 3
Регистрация: 02.11.2019
Сообщений: 227
16.01.2021, 18:51
У вас raspberry pi 4? По моему опыту - RPi это гиблое дело. На него даже Ubuntu с треском ставится. Проблема, я думаю, вызвана тем, что графический интерфейс не загружается при загрузке без "рабочего стола". Поэтому PyGame не может создать окно, этим и вызваны тормоза.

На будущее: raspberry pi - это просто ужасный эквивалент компьютера. Максимум пользы от RPi (по крайней мере для меня) - это небольшой файловый сервер, через который дома удобно перекидывать файл с компьютера на компьютер, но ничего более. В рекламе RPi освещают как замену десктопу - но и десктоп может быть медленным, глупым, сложным и невыносимым.

Добавлено через 3 минуты
И ещё, если не секрет: для чего вам автозапуск PyGame? Это вроде-как библиотека для игр, которая заточена для динамичной графики, а не для каких-либо полезных утилит, для них есть PyQt.
0
6 / 5 / 2
Регистрация: 14.10.2014
Сообщений: 79
16.01.2021, 19:37  [ТС]
geargoose, У меня pi 3B.
Цитата Сообщение от geargoose Посмотреть сообщение
Поэтому PyGame не может создать окно, этим и вызваны тормоза.
Ну, прога когда работает с тормозами, то она работает, т.е. окно пигейм создает. А вот когда прога запускается при ребуте, то ругается что окно создать не может. Т.е. на голой оське без десктопа, прога таки работает в графическом режиме, но тормозит. Т.е. при полной загрузке голой оськи все что надо для активации графики есть, но с тормозами... А вот при запуске при ребуте, выдается ошибка пигейма, как на голой оське, так и на полной.

Вот припоминаю, что при просмотре лога после фейлового запуска при ребуте по крону, в логах после события крона было еще два экрана всякой системной всячины. Думаю внимательно это прочитать, может удастся понять, что после этого еще загружалось, без чего пигейм не заработал. Также попробую сделать запуск по крону не по ребуту, а по времени, выбрав момент через пару минут после загрузки, т.е. когда все уже прогрузится. Так что завтра еще покурю этот вопрос...
Цитата Сообщение от geargoose Посмотреть сообщение
raspberry pi - это просто ужасный эквивалент компьютера
Да вы что, это просто огонь!!! Глупо использовать ее как полноценный комп. А вот для творчества и разных встроенных решений это просто супер! Конкретно этот проект - ядро торгового автомата с фулл-эйчди экраном. Работает все просто шикарно. И графика и анимация и реализация всех внутренних алгоритмов, в т.ч. взаимодействие с сервером мониторинга и фермой онлайн-касс для фискализации. Также в нашем направлении квестов, малина - просто находка. С ужасом вспоминаю когда в первых двух проектах использовался полноценный комп на четыре и три экрана, кабели к мониторам и т.п... Жуть... Сейчас на малинах все будет на порядок дешевле, и масштаб задачи только фантазией будет ограничен, а она безгранична ))) Видимо ваша работа связана с сухими данными, а не с ярким творчеством. Это я без обид, по доброму, т.к. оценить потенциал этих железочек способен человек только определенных направленностей.
Цитата Сообщение от geargoose Посмотреть сообщение
И ещё, если не секрет: для чего вам автозапуск PyGame? Это вроде-как библиотека для игр, которая заточена для динамичной графики, а не для каких-либо полезных утилит, для них есть PyQt.
Автозапуск мне нужен не пигейма, а проги с ее использованием. Для этого применения она оптимальна - от ее требуется только работа с графикой в виде картинок. Пикутэ для этой задачи - слишком навороченный монстр. На пигейме все крайне просто и эффективно. Хотя видео она круить не может и это бесит. В старой версии вроде было, а в 1.9 уже нет. А сейчас вышла 2.0 так вообще треш - функция image.load принимает только файлы bmp, а остальные "могут быть использованы, если библиотека это позволит". Но сейчас она это не позволяет и на пигейме 2.0 мой проект не пошел, пришлось откатиться. В общем какое то очень странное "развитие" идет у этой библиотеки. Надеюсь ближайшие релизы вернут способность работать с разными форматами графики.
0
67 / 64 / 3
Регистрация: 02.11.2019
Сообщений: 227
16.01.2021, 19:49
Цитата Сообщение от streker Посмотреть сообщение
при ребуте
Мне кажется, я не совсем понимаю это понятие. Я так понимаю, после перезагрузки RPi командой sudo reboot? А при выключении и последующем включении всё ок? ОС, я так понимаю, Raspbian.
Вы пробовали запускать скрипт через файл autostart?
0
6 / 5 / 2
Регистрация: 14.10.2014
Сообщений: 79
16.01.2021, 20:05  [ТС]
Цитата Сообщение от geargoose Посмотреть сообщение
Мне кажется, я не совсем понимаю это понятие. Я так понимаю, после перезагрузки RPi командой sudo reboot? А при выключении и последующем включении всё ок? ОС, я так понимаю, Raspbian.
Имеется ввиду любая загрузка системы, в т.ч. при включении.
Цитата Сообщение от geargoose Посмотреть сообщение
Вы пробовали запускать скрипт через файл autostart?
Нет, только 10 минут назад про это прочитал, завтра попробую. Также прочитал, что автозапуск через rc.local годится только для приложений, не использующих графику. В общем уже пяток идей для завтрашнего тестирования, продолжение следует
0
6 / 5 / 2
Регистрация: 14.10.2014
Сообщений: 79
17.01.2021, 15:05  [ТС]
Лучший ответ Сообщение было отмечено DmFat как решение

Решение

Итак, хэппи-энд...

Во первых, на полной оське попробовал сделать запуск по крону по времени, после полной загрузки системы. Хрен, крон отрабатывает, прога не работает - пигейм не может создать экран. Делаю проще. Вместо своей проги также по крону делаю запуск LXTerminal, и он тоже не запускается, в логах пишет, терминал не может создать дисплей. В общем, делаю ламерский вывод - по крону скрипты запускаются гдето "внизу", под графикой и т.п., и все эти блага цивилизации для запускаемых скриптов недоступны. Т.е. крон в данной задаче - фтопку!

Далее пробую видимо то, с чего и надо было начать - /etc/xdg/lxsession/LXDE-pi/autostart
Прописываю туда запуск моего скрипта - и аллилуйяяяя!!!!!! Прога запустилась и не тормозит, работает как надо. Проверил, весь функционал при данном запуске работает - порты GPIO, последовательный порт, http-запросы по сети и т.п., все работает штатно ! Дабы минимизировать проявления малины при старте системы, убрал стартовые лого, вывод стартовых сообщений, фон десктопа, который появляется на несколько секунд заменил логотипом проекта и скрыл меню-бар. Результат пока что полностью удовлетворяет.

На пустой оське указанная директория отсутствует, т.к. видимо относится к десктопу, которого в ней нет. Ну и хрен с ней. Буду работать с полной версией оськи, которую затюнил как сказано выше. Всем бобра и спасибо за внимание!

P.S. А прога на пигейме на голой оське все таки работает с тормозами, ну и хрен с ней... По ка что...
0
67 / 64 / 3
Регистрация: 02.11.2019
Сообщений: 227
17.01.2021, 15:42
Очень рад, что проблема решена.
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
17.01.2021, 15:58
Цитата Сообщение от streker Посмотреть сообщение
на голой оське все таки работает с тормозами
Как вариант тест по таймеру рисовать квадратную сетку точек 1000 на 1000 и двигать по кругу.
Сравнить лаги два варианта кода пугейм и пуглет.
0
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,763
17.01.2021, 18:32
Цитата Сообщение от streker Посмотреть сообщение
Дабы минимизировать проявления малины при старте системы, убрал стартовые лого, вывод стартовых сообщений, фон десктопа, который появляется на несколько секунд заменил логотипом проекта и скрыл меню-бар. Результат пока что полностью удовлетворяет.
ЕЯПП тебе один пигейм и нужен - попробуй openbox вместо LXDE, там автостарт есть
0
67 / 64 / 3
Регистрация: 02.11.2019
Сообщений: 227
17.01.2021, 18:37
Цитата Сообщение от vic5710 Посмотреть сообщение
ЕЯПП тебе один пигейм и нужен - попробуй openbox вместо LXDE, там автостарт есть
Эх, где же ты, мой windows?.. Программы запросто добавляются в автостарт без всяких кронов и редактирования файлов.
0
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,763
17.01.2021, 18:43
Цитата Сообщение от geargoose Посмотреть сообщение
Программы запросто добавляются в автостарт
в линухе все можно через .xinitrc сделать
http://www.linuxfocus.org/Russ... cle24.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.01.2021, 18:43
Помогаю со студенческими работами здесь

pygame.error: cannot convert without pygame.display initialized
Только начал изучать спрайты Выдаёт ошибку: Traceback (most recent call last): File "D:/project1/OCode.py", line 18, in...

Pygame тормозит на Raspbery Pi 3
Всем привет! кто знает почему на Raspbery Pi 3 тормозят даже простенькие игры на python pygame и можно ли как-то убрать тормоза?

Ошибка при установке пакета Pygame
При установке любого модуля (библиотеки/пакета) через терминал (я использую PyCharm) или командную строку раньше выводил ошибку OSError и...

Застой при создании игры на Pygame
#В работу игры снаряд должен попасть в врага и тогда враг пропадает.Но почему-то при попадании враг не пропадает.Что не так с кодом?Добавте...

Чёрный экран при запуске программы с pygame
У меня появилась проблема. Вместо окна с игрой "змейка" вылазит чёрное окно:wall: import pygame import random ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru