Ошибка вполне понятна - в функцию передано значение неверного типа, но толку от неё в такой формулировке нет. Ошибка нужна в контексте - в какой строке она происходит?
1. Автор хочет получить список участников чужого сервера, на котором его бота владелец не добавил и не добавит. Без добавления бота на этот сервер ничего не получится, вообще никак.
Vindicar, по умолчанию и так системная локаль используется, поэтому у автора она явно не та, что нужно. Либо, как вариант, при его способе запуска приложения (systemd?) локаль оказывается не определена или определена не в то значение.
ruslanbm29, как тупое решение: по сути в этом шаблоне слева направо идут ветвления текста, можно просто нумеровать перебираемые варианты, тогда каждый будет кодироваться ключом id_шаблона+список_вариантов_выбора. Но шаблоны менять будет нельзя, только добавлять новые, иначе все ключи поедут.
Morrowind, ну очевидно же что ошибка случается в недрах psycopg2.connect, из-за чего случается exception до присваивания connection. Простейшее решение: перед try: вставляем connection = None. Тогда при любом исключении connection будет определён хоть каким-то значением.
Morrowind, интерпретатор не может быть "уверен" или "не уверен", у него в строке 203 файла /server/DataFormatCorrection/UpdateData.py не определена переменная connection, и если на другой системе подобного поведения не было, значит, там переменная была определена. Эти ситуации не могут быть аналогичными. Ссылки на "раньше работало" тут бессмыслены. Нужно исправлять проблему, а не искать в ней скрытый смысл.
Что непонятно в ошибке UnboundLocalError: local variable 'connection' referenced before assignment?
Скорее всего, после этой ошибки к следующему запуску сокет не успевает освободиться и возникает уже вторая ошибка (можно погуглить установку SO_REUSEADDR на сокет в этой ситуации, но мне лень, тем более что первую проблему это всё равно не решит.
Считай, что тред - это отдельно запущенная программа, имеющая доступ к той же памяти. В асинхронном коде нет многопоточности, это один процесс, и распараллелить вычисления, например, там не получится. Переключение между задачами в асинхронном коде происходит при ожиданиях операций ввода-вывода или при явном вызове каких-то функций.
webratas, в приглашении символ $ означает обычного пользователя, # - суперпользователя. Этот символ может генерироваться выражением \$ в переменной окружения PS1, задающей формат приглашения.
dkfrmmnt
лучше всего исходить из соображения, что любая гениальная идея украдена и даже возможно реализована ещё до того, как она пришла тебе в голову. Эта эвристика почти никогда не ошибается.
АртемЪ, нейтральный - это не принадлежащий ведомству, от услуг которого нельзя отказаться. Сторонние УЦ могут выдать экспортируемый ключ, который легко самостоятельно перенести куад угодно и как угодно растиражировать. Конечно, с соответствующим снижением уровня безопасности. В некоторых случаях это бывает очень полезно.
Однако если ключ выдаёт ведомство, оно может по своему усмотрению выдавать неэкспортируемый ключ, который тем самым будет существовать в единственном экземпляре. Отказаться от этого будет невозможно.
Речь об удалённом выполнении команд? Это как раз задача для написанной на tcl утилиты expect. Там можно запустить telnet/ssh (с помощью spawn), реагировать на запросы паролей, приглашения командной строки и всё такое. На само устройство ничего ставить не надо.
Конечно, если нужно что-то посложнее, то возможностей expect окажется недостаточно. Я в своё время писал скрипты для конфигурирования Cisco на python с telnetlib.