首页 > 编程问答 >AttributeError:“协程”对象没有属性“get_me”

AttributeError:“协程”对象没有属性“get_me”

时间:2024-07-20 21:58:17浏览次数:14  
标签:python jupyter-notebook attributeerror telethon

我尝试在 Jupyter 笔记本中运行以下代码,但出现错误: AttributeError: 'coroutine' 对象没有属性 'get_me'

但它在 Visual Studio Code 上运行良好。知道为什么吗?

这是代码:

from telethon import TelegramClient, sync

api_id = ******
api_hash = '********************************'

client = TelegramClient('session_test', api_id, api_hash).start()

me = client.get_me()
print(me.stringify())

遇到的错误 “AttributeError: 'coroutine' object has no attribute 'get_me'” 意味着正在尝试在协程对象本身上而非在运行它的结果上访问 get_me 方法。 TelegramClient 中的方法(例如 get_me )是异步的,这意味着它们需要使用 await 关键字来调用。

观察到 Jupyter Notebook 与 Visual Studio Code 之间行为不同的原因可能在于在这些环境中运行代码的方式不同。以下是可能出现差异的一些原因:

  1. Telethon 版本: 请确保在 Jupyter Notebook 和 Visual Studio Code 中使用的 Telethon 版本相同。不同的版本可能具有不同的 API 实现。
  2. 运行时环境: Jupyter Notebook 和 Visual Studio Code 可以使用不同的运行时环境来执行代码。确保两个环境都正确设置为处理异步操作。
  3. 代码执行: 可能在 Jupyter Notebook 和 Visual Studio Code 中以不同的方式执行代码。例如,在 Jupyter 中,可能正在一个单元格中运行整个代码,而在 Visual Studio Code 中,可能正在使用调试器或逐行执行代码。

要解决此错误,需要使用 await 关键字来调用 get_me 方法:

from telethon import TelegramClient, sync

api_id = ******
api_hash = '********************************'

client = TelegramClient('session_test', api_id, api_hash).start()

async def main():
    me = await client.get_me()
    print(me.stringify())

with client:
    client.loop.run_until_complete(main())

此代码首先定义了一个名为 main 的异步函数,该函数使用 await 关键字调用 client.get_me() 。然后,它使用 client.loop.run_until_complete() 在事件循环内运行 main() 函数。这确保了在访问 me 变量之前正确执行异步操作。

对的代码进行这些更改应该可以在 Jupyter Notebook 和 Visual Studio Code 中解决 “AttributeError”。

标签:python,jupyter-notebook,attributeerror,telethon
From: 54997158

相关文章

  • 七大排序算法的Python实现
    七大排序算法的Python实现1.冒泡排序(BubbleSort)算法思想冒泡排序通过重复交换相邻的未按顺序排列的元素来排序数组。每次迭代都将最大的元素“冒泡”到数组的末尾。复杂度分析时间复杂度:O(n^2)空间复杂度:O(1)defbubble_sort(arr):n=len(arr)for......
  • python反序列化
    之前hgame中遇到python反序列化,这次正好借分享会来尽可能详细学习一下python反序列化基础知识什么是序列化?反序列化?在很多时候为了方便对象传输,我们往往会把一些内容转化成更方便存储、传输的形式。我们把“对象->字符串”的翻译过程称为“序列化”;相应地,把“字符串->对......
  • 我在 python 项目中不断收到“无法识别图像文件中的数据”错误
    我正在尝试向我的TK窗口添加一个图标,但我不断收到一条错误消息:Traceback(mostrecentcalllast):File"C:\Users\roger\source\repos\PythonApplication\PythonApplication.py",line7,in<module>windowIcon=tk.PhotoImage(file="C:/Users/roger/Downloa......
  • Python学习笔记41:游戏篇之外星人入侵(二)
    前言在上一篇文章,我们已经创建好了项目目录,在今天,我们主要编写入口模块的功能。mainmain.py模块是我们游戏程序的入口,所有我们需要在模块中编写游戏主启动以及主页面相关的代码。当前我们的main模块是这样的,这是我们创建项目时默认生成一些代码,接下来我们就要进行我们......
  • Python学习笔记39:进阶篇(二十八)pygame的使用之按键映射及按键失效问题解决
    前言基础模块的知识通过这么长时间的学习已经有所了解,更加深入的话需要通过完成各种项目,在这个过程中逐渐学习,成长。我们的下一步目标是完成pythoncrashcourse中的外星人入侵项目,这是一个2D游戏项目。在这之前,我们先简单学习一下pygame模块。私信我发送消息python资料,......
  • Python学习笔记40:游戏篇之外星人入侵(一)
    前言入门知识已经学完,常用标准库也了解了,pygame入门知识也学了,那么开始尝试小游戏的开发。当然这个小游戏属于比较简单的小游戏,复杂的游戏需要长时间的编写累计开发经验,同时也需要一定的时间才能编写出来。现在的话还是嫩了点。从基础的简单的开始,学习实践,慢慢的成长才......
  • Python学习笔记37:进阶篇(二十六)pygame的使用之输入处理
    前言基础模块的知识通过这么长时间的学习已经有所了解,更加深入的话需要通过完成各种项目,在这个过程中逐渐学习,成长。我们的下一步目标是完成pythoncrashcourse中的外星人入侵项目,这是一个2D游戏项目。在这之前,我们先简单学习一下pygame模块。私信我发送消息python资料,......
  • Python学习笔记38:进阶篇(二十七)pygame的使用之时间与帧数控制
    前言基础模块的知识通过这么长时间的学习已经有所了解,更加深入的话需要通过完成各种项目,在这个过程中逐渐学习,成长。我们的下一步目标是完成pythoncrashcourse中的外星人入侵项目,这是一个2D游戏项目。在这之前,我们先简单学习一下pygame模块。私信我发送消息python资料,......
  • 音频文件降噪及python示例
    操作系统:Windows10_x64Python版本:3.9.2noisereduce版本:3.0.2从事音频相关工作,大概率会碰到降噪问题,今天整理下之前学习音频文件降噪的笔记,并提供Audacity和python示例。我将从以下几个方面展开:noisereduce库介绍使用Audacity进行降噪使用fft滤波降噪使用noisereduce进......
  • Python; Django 添加字符到路径名导致操作系统错误 22
    我一直在尝试让django渲染我创建的模板。起初它说模板不存在,但是一旦我修复了错误,它现在就会向路径添加字符,并且因此找不到模板。路径应该是:C:\\Users\\ABC\\Desktop\\science_crowd\\Lightweight_Django\\placeholder\\home.html但是错误说:它找不到:C:\\Us......