werastet, код надо выложить, иначе это будет нарушением правил сайта. Чувствительную часть можно убрать, но кода должно быть достаточно, чтобы было понятно, что он делает, и чтобы его можно было воспроизвести (запустить).
За помощью в режиме "код не покажу" - на фриланс за деньги.
Если в списке установленных пакетов есть aiogram (на скриншоте не видно), то скорее всего pip и python берутся из разных инсталляций питона. Можно проверить сравнением
pip list
python -m pip list
До кучи рекомендую запустить бота с помощью команды python bot.py, а не просто bot.py
szQocks, на самом деле возможно стоит ТЗ пересмотреть: сделать приложение работающим с локальными данными и отдельно две кнопки "выгрузить в гугл" и "загрузить из гугла". Так будет корректнее, чем постоянно дёргать гугл для синхронизации. Я подозреваю, заказчик хочет просто видеть все данные в табличном виде для выгрузки и анализа, подобные кнопки больше соответствуют смыслу его пожеланий, как мне кажется.
szQocks, вообще если заказчик не полный неадекват, то он вполне может прислушаться к разумным советом на тему "как сделать более правильно, удобно, надёжно, эффективно".
Пока что выглядит как попытка чересчур сложно решить простую задачу с непонятными целями.
szQocks, и всё равно, json тут ни к селу ни к городу. Можно как угодно хранить, хоть в текстовом файле, хоть в бинарном. Это всё равно фактически кэш, который можно асинхронно в фоне регулярно выгружать на сервер.
Другой вопрос, что смысл такого непонятен. Если это для одного человека, то зачем вообще хранить за пределами того устройства, где он работает? Сделать просто механизм бэкапа любым способом на случай проблем (например, паковать в zip и загружать в какой-нить гугл-диск или дропбокс).
szQocks, то есть речь идёт о том, что группа людей совместно через какое-то приложение редактируют таблицу? А как будет решаться вопрос конфликтов, если два разных пользователя отредактируют одну ячейку?
szQocks, я присоединяюсь к предыдущему оратору. Чтобы что-то советовать, нужно понимать, что вообще требуется. Пока что понятно чуть менее, чем ничего.
Естественно один event_loop не может ждать таски другого event_loop. Ведь суть asyncio в том, что в одном потоке выполняется event loop и на ожиданиях ввода-вывода происходит переключение между задачами. Если работает один event loop, то другой в это время не может выполняться.
Роман Глушинский, биндить можно только на локальный адрес. Какая задача вообще решается? Чтобы сервис был доступен только из туннеля? Может, проще fw использовать?
У меня есть бот, которому больше года и который раз в несколько дней постит сообщения в некий канал, ничего не удалили. Вероятно, каким-то ботам надо хотя бы иногда дёргать getUpdates?
Великолепное определение...