Луиджи Вампа, это намёк, что стоит модифицировать команду так, чтобы она имела задержку, и прочитать, что же она выводит. Судя по формулировке вопроса, автор не догадался это сделать.
Например, os.system('php artisan websockets:serve & pause') должно дать такой результат.
Если же изменить команду не получается, можно использовать модуль subprocess - он предоставляет средства для перехвата вывода дочернего процесса, после чего этот вывод можно будет отобразить в удобном нам виде.
Дьявол, как всегда, в деталях. Что такое "рационально"?
Наименьшее количество монет?
Наименьшее количество типов момент?
По возможности сохранять пропорцию разных монет в ящике, для обслуживания других клиентов?
Всё сразу?
F1azy, не выделываться с выражениями внутри фигурных скобок, а поместить каждое выражение в переменную и вставлять уже только переменные. И удобнее, и читаемее.
Тебе что, по пальцу отрубают за каждую переменную?
JRBRO, напрямую изображение скормить затруднительно.
Вообще для обработки непосредственно изображений часто используются свёрточные нейронные сети (convolutional neural networks). Свёрточная часть "сжимает" изображение, выделяя существенные признаки, а дальше идёт обычная сеть-классификатор, которая уже принимает решение.
Можно полистать официальный сайт пакета tensorflow на эту тему.
JRBRO, ну тут для начала стоит определиться с данными. Что у тебя на входе, как выглядит желаемый выход.
OpenCV содержит кое-какие алгоритмы типа метода опорных векторов, решающего леса и байесовского классификатора. Но, скажем, нейронных сетей там нет, а скормить классификатору изображение как таковое непросто.
yxtiblin, он как раз это и найдёт.
Единственное условие - элементы должны быть сравниваемыми. Т.е. со строками, числами и т.п. всё просто, а вот более сложные классы уже не факт.
Ну и да, в множества можно помещать только хэшируемые (упрощённо - неизменные) объекты. Множество списков не получится сделать.
Вячеслав Иванов, вообще subprocess сам добавит кавычки где нужно.
subprocess.run(['asterisk', '-rx', 'sip show peers'])
Если и так не сработает, то остаётся только задаться вопросом - работает ли такая команда в принципе, если её выполняешь ты сам в командной строке?
maryaTurova, используй threading.Queue, помещай туда простенькие структуры данных, описывающие команды вида "в такой-то элемент помести такое-то значение".
В основном потоке используй window.after() для периодической проверки содержимого Queue. Если там что-то есть, то извлекаешь описание команды и выполняешь её. Так как выполняться она будет в главном потоке, то и проблем не будет.
toskling, ты можешь попытаться использовать wait_for(), указывая каждый раз отдельную функцию проверки через параметр check. Но это сколь-нибудь удобно только для коротких цепочек в 2-3 шага.
В противном случае тебе нужно реализовывать автомат состояний.
RED2190, тогда ещё раз. Пример из доков как есть (без изменений помимо id серверов) работает?
Если да, то разгребайте свой код, выкидывайте необязательные куски, пока не заработает.
Ну и опять же, имеем ввиду что если вы делаете регистрацию команд не на уровне отдельных серверов, а глобально, то в доках написано что это может занимать около часа.