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 серверов) работает?
Если да, то разгребайте свой код, выкидывайте необязательные куски, пока не заработает.
Ну и опять же, имеем ввиду что если вы делаете регистрацию команд не на уровне отдельных серверов, а глобально, то в доках написано что это может занимать около часа.
Алиса Вергон, как ты команду вызываешь? Да и если на то пошло, зачем тебе guild вообще если у тебя есть объект Member (участник сервера), который сам знает, к какому серверу (guild) он относится?
Wolf_Yout, насчёт последнего: ты делаешь рассылку по всем гильдиям, в которые входит бот.
Во-первых, нет гарантий, что в гильдии вообще будет три текстовых канала.
Во-вторых, нет гарантий, что третий по счёту канал будет приемлемым для рассылок.
В-третьих, нет гарантий, что каналы будут всегда возвращаться в одном и том же порядке, и что один и тот же канал всегда будет третьим. Это может быть так сейчас, но гарантируется ли это в будущем?
Более удачное решение - либо проверять имя канала на наличие заранее заданного ключевого слова, либо хранить для каждой гильдии ID канала для таких рассылок, и предоставить команду для смены канала.
Ну и в-четвёртых - ошибка отправки в один канал обломает всю задачу, так как вылетит исключение, а ты их не ловишь.
И в-пятых - если гильдий много, можно улететь в бан за спам. Стоит всё же подумать о задержке между отправками.
Wolf_Yout, ты использовал asyncio.create_task()? Из кода это не ясно.
Далее, в цикле while ты убрал задержку совсем - это означает, что ты долбишь процессор непрерывным циклом, не давая боту ни минуты передышки, чтобы выполнить хоть что-то ещё. Почитай про asyncio.sleep() и чем он отличается от time.sleep().
Да и в целом тебе не помешало бы попрактиковаться с асинхронными программами на более простых примерах. Понять, как они устроены, что можно и чего не стоит делать. Потом уже вернёшься к боту.
P.S.: ну и мелочь: угадай, что не так с обращением guild.text_channels[2]
Viva8888, я к тому, что ты вроде как пытаешься выполнить аппроксимацию множества точек (X_train; Y_train) многочленом, а это типовая задача, решение которой уже есть в numpy.
Или у тебя что-то более специфическое?
То, что ты не успеваешь прочитать сообщение об ошибке, ещё не значит, что её нет.