#python #openshift
Написал я недавно бота на python ( pyTelegramBotAPI ) и решил поставить его на хостинг OpenShift Сообщения бот получаем методом polling. На компьютере скрипт прекрасно функционирует, а после отправки его на OpenShift бот получал одно сообщение и вырубался. Возможно, не стоило основной код программы отправлять в файл setup.py, который загружается сразу же, но другого способа запустить скрипт я не нашел. Python 3.5.1 Исходный код бота Собственно выбивает ошибку на строку bot.polling(none_stop=True, interval=0) Traceback (most recent call last): File "/var/lib/openshift/57517dca0c1e660af1000092/app-root/runtime/rep o//setup.py", line 166, in module bot.polling(none_stop=True, interval=0) File "/var/lib/openshift/57517dca0c1e660af1000092/python/virtenv/venv/ lib/python3.3/site-packages/telebot/init.py", line 192, in polling self.__threaded_polling(none_stop, interval, timeout) File "/var/lib/openshift/57517dca0c1e660af1000092/python/virtenv/venv/ lib/python3.3/site-packages/telebot/init.py", line 216, in __threaded_pollin g self.worker_pool.raise_exceptions() File "/var/lib/openshift/57517dca0c1e660af1000092/python/virtenv/venv/ lib/python3.3/site-packages/telebot/util.py", line 103, in raise_exceptions six.reraise(self.exc_info[0], self.exc_info1, self.exc_info[2]) File "/opt/rh/python33/root/usr/lib/python3.3/site-packages/six.py", l ine 329, in reraise raise value File "/var/lib/openshift/57517dca0c1e660af1000092/python/virtenv/venv/ lib/python3.3/site-packages/telebot/util.py", line 54, in run remote: task(*args, **kwargs) и на эту функцию def log(message): print("\n~~~~~~") print(str(datetime.datetime.now())) print("Message from {0} {1}. (id = {2}, chat = {3}) \n Text - {4}".format(message.from_user.first_name, message.from_user.last_name, str(message.from_user.id), str(message.chat.id), message.text)) functions.log(message) File "/var/lib/openshift/57517dca0c1e660af1000092/app-root/runtime/repo/functions.py", line 16, in log message.text)) UnicodeEncodeError: 'ascii' codec can't encode characters in position 77-82: ordinal not in range(128)
Ответы
Ответ 1
Первая ошибка была связана с устаревшей версией библиотеки request sudo pip3 install --upgrade urllib3 requests исправляет всё. Проблема с функцией log была из-за неправильного запуска. Я по ошибке запускал через python 2.
Комментариев нет:
Отправить комментарий