安装Telethon后导入触发TypeError错误,请求解决方法
问题描述
已执行pip install telethon命令安装Telethon,安装日志显示Telethon及相关依赖均已满足,但运行以下代码:
import telethon print(telethon.__version__)
时触发如下错误:
Traceback (most recent call last): File "/home/kali/Desktop/testtelethone", line 1, in <module> import telethon File "/home/kali/.local/lib/python3.9/site-packages/telethon/__init__.py", line 1, in <module> from .client.telegramclient import TelegramClient File "/home/kali/.local/lib/python3.9/site-packages/telethon/client/__init__.py", line 21, in <module> from .downloads import DownloadMethods File "/home/kali/.local/lib/python3.9/site-packages/telethon/client/downloads.py", line 16, in <module> import aiohttp File "/usr/lib/python3/dist-packages/aiohttp/__init__.py", line 6, in <module> from .client import BaseConnector as BaseConnector File "/usr/lib/python3/dist-packages/aiohttp/client.py", line 32, in <module> from . import hdrs, http, payload File "/usr/lib/python3/dist-packages/aiohttp/http.py", line 7, in <module> from .http_parser import HeadersParser as HeadersParser File "/usr/lib/python3/dist-packages/aiohttp/http_parser.py", line 15, in <module> from .helpers import NO_EXTENSIONS, BaseTimerContext File "/usr/lib/python3/dist-packages/aiohttp/helpers.py", line 607, in <module> class CeilTimeout(async_timeout.timeout): TypeError: function() argument 'code' must be code, not str
推测是Python未正确识别相关组件,求解决方法。
解决方法
这个错误源于系统自带的aiohttp(路径为/usr/lib/python3/dist-packages)与async_timeout版本不兼容,和pip安装的依赖产生冲突,可按以下步骤解决:
- 卸载系统自带的冲突包:
sudo apt remove python3-aiohttp python3-async-timeout - 用pip重新安装兼容版本的依赖:
pip install --upgrade aiohttp async-timeout telethon - 若上述方法无效,使用虚拟环境隔离依赖:
激活虚拟环境后运行你的代码即可。# 创建虚拟环境 python3 -m venv telethon_env # 激活虚拟环境 source telethon_env/bin/activate # 在虚拟环境中安装Telethon pip install telethon
内容的提问来源于stack exchange,提问作者M.Mashreghi
相关产品推荐
相关产品推荐

