You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Telethon TelegramClient启动触发退出代码-1073741819(0xC0000005)咨询

问题描述

使用PyCharm 2023.2.5 + Python 3.11.1运行如下代码:

from telethon import TelegramClient, sync, events
class telegram_messenger:
    def __init__(self):
        api_id = '123'
        api_hash = 'ABC'
        bot_token = 'ZZZ'
        client = TelegramClient('bot', api_id, api_hash).start(bot_token=bot_token)

程序崩溃,返回错误码:Process finished with exit code -1073741819 (0xC0000005);但注释掉client = ...这行后,程序可正常运行。

原因分析

这个错误码是Windows系统的内存访问违规错误,结合Telethon的使用场景,主要原因有这几个:

  • 依赖版本不兼容:Python 3.11属于较新的版本,旧版Telethon或其依赖库(比如cryptography)对3.11的支持不完善,初始化客户端时触发内存异常。
  • 会话文件问题:当前目录下的bot.session会话文件损坏、无读写权限,导致客户端初始化时读取/写入文件出错。
  • 同步模式冲突:在类的构造方法里直接用同步方式启动客户端,和PyCharm的运行环境存在线程/内存调度冲突。
解决方案
  1. 升级Telethon到兼容版本
    执行命令更新Telethon,确保它支持Python 3.11:

    pip install --upgrade telethon
    
  2. 重置会话文件
    删除当前项目目录下的bot.session文件,重新运行程序,让Telethon生成新的会话文件;同时确认PyCharm拥有当前目录的读写权限。

  3. 改用异步模式启动客户端
    同步模式在某些环境下容易出问题,换成异步写法测试:

    from telethon import TelegramClient, events
    import asyncio
    
    class telegram_messenger:
        def __init__(self):
            self.api_id = '123'
            self.api_hash = 'ABC'
            self.bot_token = 'ZZZ'
            asyncio.run(self.start_client())
    
        async def start_client(self):
            self.client = TelegramClient('bot', self.api_id, self.api_hash)
            await self.client.start(bot_token=self.bot_token)
            print("客户端启动成功")
    
    if __name__ == "__main__":
        tm = telegram_messenger()
    
  4. 检查Python环境
    若以上方法无效,尝试创建全新的虚拟环境,重新安装Telethon及依赖,避免全局环境的库冲突;同时确认Python 3.11的安装包没有损坏。


内容的提问来源于stack exchange,提问作者starsnpixel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 23:17:25