Страницы

Поиск по вопросам

пятница, 24 января 2020 г.

pyTelegramBotAPI на OpenShift

#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.

Комментариев нет:

Отправить комментарий