Closed mrgulka closed 2 years ago
Это ошибка наблюдается в том случае, если бот не может найти файл конфигурации с именем config.yaml
. Бот пытается открыть файл config.yaml
в директории C:\Users\usr\Desktop\TelegramBot
(в вашем случае), но файл по какой-то причине открыть не удалось.
Ваш файл конфигурации имеет правильное имя и он находится в той же директории, из которой запускается бот? Если да, но ошибка все равно наблюдается, то отправьте логи бота, запустив его с параметром --debug
В будущем используйте эту форму для создания отчетов об ошибке.
мой файл конфигурации лежит в C:\Users\usr\Desktop\TelegramBot\tgbot
. спасибо, я проверю это
(tgbot) C:\Users\usr\Desktop\TelegramBot>py -m TG_AutoPoster --debug
2022-09-01 22:10:12.904 | INFO | __main__:<module>:97 - TG AutoPoster запущен
2022-09-01 22:10:12.904 | DEBUG | __main__:<module>:98 - Python 3.10.6 (tags/v3.10.6:9c7b4bd, Aug 1 2022, 21:53:49) [MSC v.1932 64 bit (AMD64)]
TG_AutoPoster 3.3.0
OS: win32
Config path: C:\Users\usr\Desktop\TelegramBot\config.yaml
Cache dir: C:\Users\usr\Desktop\TelegramBot\.cache
Passed args:['--debug']
Traceback (most recent call last):
File "C:\Users\usr\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Users\usr\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 86, in _run_code
exec(code, run_globals)
File "C:\Users\usr\Desktop\TelegramBot\tgbot\lib\site-packages\TG_AutoPoster\__main__.py", line 108, in <module>
client = AutoPoster(
File "C:\Users\usr\Desktop\TelegramBot\tgbot\lib\site-packages\TG_AutoPoster\TG_AutoPoster.py", line 34, in __init__
self.reload_config()
File "C:\Users\usr\Desktop\TelegramBot\tgbot\lib\site-packages\TG_AutoPoster\TG_AutoPoster.py", line 179, in reload_config
self.config: dict = yaml.safe_load(stream)
File "C:\Users\usr\Desktop\TelegramBot\tgbot\lib\site-packages\yaml\__init__.py", line 125, in safe_load
return load(stream, SafeLoader)
File "C:\Users\usr\Desktop\TelegramBot\tgbot\lib\site-packages\yaml\__init__.py", line 79, in load
loader = Loader(stream)
File "C:\Users\usr\Desktop\TelegramBot\tgbot\lib\site-packages\yaml\loader.py", line 34, in __init__
Reader.__init__(self, stream)
File "C:\Users\usr\Desktop\TelegramBot\tgbot\lib\site-packages\yaml\reader.py", line 85, in __init__
self.determine_encoding()
File "C:\Users\usr\Desktop\TelegramBot\tgbot\lib\site-packages\yaml\reader.py", line 124, in determine_encoding
self.update_raw()
File "C:\Users\usr\Desktop\TelegramBot\tgbot\lib\site-packages\yaml\reader.py", line 178, in update_raw
data = self.stream.read(size)
File "C:\Users\usr\AppData\Local\Programs\Python\Python310\lib\encodings\cp1251.py", line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position 1101: character maps to <undefined>
помогите((
Файл конфигурации должен иметь кодировку UTF-8. Но скорее всего проблема в том, что Python по какой-то причине пытается открыть файл используя кодировку cp1251.
Попробуйте запустить бота с помощью команды: py -X utf8 -m TG_AutoPoster --debug
К следующему релизу я добавлю явное указание кодировки при чтении файла конфигурации.
И можете также прикрепить файл конфигурации?
domains:
domain1:
channel:
- '@avatar_universe'
disable_notification: false
use_long_poll: true
what_to_send:
- all
https://vk.com/avatar_film:
channel: '@avatar_universe'
last_id: 105332
last_story_id: 0
pinned_id: 0
settings:
admins_id:
- 453370423
disable_notification: true
disable_web_page_preview: false
send_reposts: true
sign_posts: true
telegram:
api_hash: ea8b0dd**4e13dd2e046b9b432
api_id: 19**85
bot_token: 5156719584:AA**hCns4RCQFrz-xy9MERTg
vk:
login: ''
password: ''
token: 592a10e2592a10e**0bf87d5e945fff3a5fbc
он работает... но как то ненормально.
(tgbot) C:\Users\usr\Desktop\TelegramBot>Traceback (most recent call last):
File "C:\Users\usr\Desktop\TelegramBot\tgbot\lib\site-packages\TG_AutoPoster\__main__.py", line 11, in <module>
from . import AutoPoster, __version__
ImportError: attempted relative import with no known parent package
py -X utf8 -m TG_AutoPoster --debug
2022-09-02 17:53:38.229 | INFO | __main__:<module>:97 - TG AutoPoster запущен
2022-09-02 17:53:38.229 | DEBUG | __main__:<module>:98 - Python 3.10.6 (tags/v3.10.6:9c7b4bd, Aug 1 2022, 21:53:49) [MSC v.1932 64 bit (AMD64)]
TG_AutoPoster 3.3.0
OS: win32
Config path: C:\Users\usr\Desktop\TelegramBot\config.yaml
Cache dir: C:\Users\usr\Desktop\TelegramBot\.cache
Passed args:['--debug']
C:\Users\usr\Desktop\TelegramBot\tgbot\lib\site-packages\apscheduler\util.py:436: PytzUsageWarning: The localize method is no longer necessary, as this time zone supports the fold attribute (PEP 495). For more details on migrating to a PEP 495-compliant implementation, see https://pytz-deprecation-shim.readthedocs.io/en/latest/migration.html
return tzinfo.localize(dt)
Job "AutoPoster.listen (trigger: date[2022-09-02 17:53:38 MSK], next run at: 2022-09-02 17:53:38 MSK)" raised an exception
Traceback (most recent call last):
File "C:\Users\usr\Desktop\TelegramBot\tgbot\lib\site-packages\apscheduler\executors\base.py", line 125, in run_job
retval = job.func(*job.args, **job.kwargs)
File "C:\Users\usr\Desktop\TelegramBot\tgbot\lib\site-packages\TG_AutoPoster\TG_AutoPoster.py", line 155, in listen
longpoll = VkBotLongPoll(self.vk_session, group_id=-group.group_id)
File "C:\Users\usr\Desktop\TelegramBot\tgbot\lib\site-packages\vk_api\bot_longpoll.py", line 219, in __init__
self.update_longpoll_server()
File "C:\Users\usr\Desktop\TelegramBot\tgbot\lib\site-packages\vk_api\bot_longpoll.py", line 232, in update_longpoll_server
response = self.vk.method('groups.getLongPollServer', values)
File "C:\Users\usr\Desktop\TelegramBot\tgbot\lib\site-packages\vk_api\vk_api.py", line 697, in method
raise error
vk_api.exceptions.ApiError: [28] Application authorization failed: method is unavailable with service token.
2022-09-02 17:53:43.601 | INFO | TG_AutoPoster.utils.vk.group:get_posts:59 - [VK] Проверка на наличие новых постов в https://vk.com/avatar_film с последним ID 105332
2022-09-02 17:53:44.148 | INFO | TG_AutoPoster.TG_AutoPoster:get_new_posts:142 - [VK] Проверка завершена
при /restart в телеге не может заново запуститься
2022-09-02 17:59:31.928 | INFO | TG_AutoPoster.utils.tg.tools:admin_check:13 - Пользователь Гулька None c ID 453370423 использовал команду /restart
(tgbot) C:\Users\usr\Desktop\TelegramBot>Traceback (most recent call last):
File "C:\Users\usr\Desktop\TelegramBot\tgbot\lib\site-packages\TG_AutoPoster\__main__.py", line 11, in <module>
from . import AutoPoster, __version__
ImportError: attempted relative import with no known parent package
в остальном, все в порядке. хотелось бы узнать, Вы добавите ли подпись снизу, изменяющуюся в конфиге для всех постов? например, чтобы подписать название канала и при нажатии на этот текст переходило по ссылке.
он работает... но как то ненормально. vk_api.exceptions.ApiError: [28] Application authorization failed: method is unavailable with service token.
Long Poll API не работает с сервисным ключом доступа. Либо используйте ключ доступа пользователя или сообщества (подробнее описано в README.md чуть ниже раздела Запуск) либо отключите в файле конфигурации параметр use_long_poll
.
при /restart в телеге не может заново запуститься ImportError: attempted relative import with no known parent package
Бот вылетает с ошибкой импорта. К сожалению, я не знаю что с этим делать.
хотелось бы узнать, Вы добавите ли подпись снизу, изменяющуюся в конфиге для всех постов? например, чтобы подписать название канала и при нажатии на этот текст переходило по ссылке.
Думаю я реализую возможность добавить к посту любой пользовательский текст (в том числе и ссылки) в конце сообщения.
спасибо огромное за бота и помощь!
Адриан, у Вас своя машина или вы где-то на хосте? Можете прорекламировать?
Есть пара серверов на Oracle Cloud, но бот работает на домашнем Raspberry Pi 3 Model B.
доброго времени суток! бот даже не включается, выводя вот это безобразие. что делать?