我有一个小电报机器人在树莓皮上运行。它使用aiogram
框架,该框架使用asyncio
和aiohttp
。当通过python bot.py
启动bot时,一切正常。但是如果我将@reboot <path to python> <path to bot.py> > bot.py.log
添加到pi的crontab中,日志会给出以下错误:
Aiohttp client throws an error: ClientConnectorError: Cannot connect to host api.telegram.org:443 ssl:default [Connect call failed ('2001:67c:4e8:f004::9', 443, 0, 0)]
我不明白为什么这个错误只发生在通过crontab启动时,而不是手动启动时。我在pi的控制台中粘贴了用于crontab的精确命令,没有得到错误。你知道发生了什么事以及如何解决这个问题吗
编辑:
由于我越来越相信这可能是python和aiohttp
的问题,下面是完整的错误堆栈:
File "/home/pi/bot_directory/TelegramBot.py", line 467, in <module>
executor.start_polling(dp, skip_updates=True)
File "/home/pi/miniforge3/envs/bot_directory/lib/python3.9/site-packages/aiogram/utils/executor.py", line 41, in start_polling
executor.start_polling(reset_webhook=reset_webhook, timeout=timeout, relax=relax, fast=fast)
File "/home/pi/miniforge3/envs/bot_directory/lib/python3.9/site-packages/aiogram/utils/executor.py", line 309, in start_polling
loop.run_until_complete(self._startup_polling())
File "/home/pi/miniforge3/envs/bot_directory/lib/python3.9/asyncio/base_events.py", line 642, in run_until_complete
return future.result()
File "/home/pi/miniforge3/envs/bot_directory/lib/python3.9/site-packages/aiogram/utils/executor.py", line 360, in _startup_polling
await self._welcome()
File "/home/pi/miniforge3/envs/bot_directory/lib/python3.9/site-packages/aiogram/utils/executor.py", line 350, in _welcome
user = await self.dispatcher.bot.me
File "/home/pi/miniforge3/envs/bot_directory/lib/python3.9/site-packages/aiogram/bot/bot.py", line 29, in me
setattr(self, '_me', await self.get_me())
File "/home/pi/miniforge3/envs/bot_directory/lib/python3.9/site-packages/aiogram/bot/bot.py", line 217, in get_me
result = await self.request(api.Methods.GET_ME, payload)
File "/home/pi/miniforge3/envs/bot_directory/lib/python3.9/site-packages/aiogram/bot/base.py", line 208, in request
return await api.make_request(self.session, self.server, self.__token, method, data, files,
File "/home/pi/miniforge3/envs/bot_directory/lib/python3.9/site-packages/aiogram/bot/api.py", line 142, in make_request
raise exceptions.NetworkError(f"aiohttp client throws an error: {e.__class__.__name__}: {e}")
Aiohttp client throws an error: ClientConnectorError: Cannot connect to host api.telegram.org:443 ssl:default [Temporary failure in name resolution]
目前没有回答
相关问题 更多 >
编程相关推荐