我们使您成为一个包装纸,您无法拒绝
在电报组中,我们有一个充满活力的开发人员社区。加入我们!
请继续关注我们的电报频道上的图书馆更新和新版本。
该库为Telegram Bot API提供了一个纯净的Python,异步界面。它与Python版本3.9+兼容。
除了纯API实施外,该库还具有几种便利方法和快捷方式以及许多高级类,以使机器人的开发变得轻松明了。这些类包含在telegram.ext
子模块中。
安装库后,请务必查看有关与PTB合作的部分。
电报机器人API 7.11的所有类型和方法均由此库内部支持。此外,尚未本地包含的机器人API功能仍然可以如我们的Wiki中所述使用。
您可以python-telegram-bot
$ pip install python-telegram-bot --upgrade
要安装预释放,请另外使用--pre
标志。
您也可以从源安装python-telegram-bot
,尽管通常不需要。
$ git clone https://github.com/python-telegram-bot/python-telegram-bot
$ cd python-telegram-bot
$ pip install build
$ python -m build
为了使您能够验证您下载的发布文件确实由python-telegram-bot
团队提供,我们已经采取了以下措施。
从v21.4开始,所有版本均通过Sigstore签名。相应的签名文件将上传到GitHub版本页面。要验证签名,请安装Sigstore Python客户端,并按照说明验证GitHub Action的签名。作为--repository
参数的输入,请使用值python-telegram-bot/python-telegram-bot
。
较早的版本用GPG密钥签名。签名将上传到GitHub版本页面和PYPI项目,并以后缀.asc
结尾。请在这里找到公共钥匙。这些键以格式<first_version>-<last_version>.gpg
命名。
此外,GITHUB发布页面还包含带有后缀.sha1
的文件中发行文件的SHA1哈希。
python-telegram-bot
试图尽可能使用少数第三方依赖。但是,对于某些功能而言,使用第三方库比再次实施功能更理智。由于这些功能是可选的,因此默认情况下未安装相应的第三方依赖关系。相反,它们被列为可选依赖性。这允许对于不需要可选功能的用户避免不必要的依赖冲突。
唯一需要的依赖关系是httpx〜= 0.27, telegram.request.HTTPXRequest
,默认网络后端。
与其他库一起使用时, python-telegram-bot
最有用。为了最大程度地减少依赖性冲突,我们试图在(可选)依赖项上的版本要求方面保持自由。另一方面,我们必须确保python-telegram-bot
的稳定性,这就是为什么我们确实应用版本范围的原因。如果由于这些界限遇到依赖性冲突,请随时伸出援手。
可以以可选的依赖项安装PTB:
pip install "python-telegram-bot[passport]"
安装加密量> = 39.0.1库。如果要使用电报护照相关功能,请使用此功能。pip install "python-telegram-bot[socks]"
安装HTTPX [Socks]。如果要在Socks5服务器后面工作,请使用此功能。pip install "python-telegram-bot[http2]"
安装HTTPX [HTTP2]。如果要使用HTTP/2,请使用此。pip install "python-telegram-bot[rate-limiter]"
安装Aiolimiter〜= 1.1.0。如果要使用telegram.ext.AIORateLimiter
,请使用此。pip install "python-telegram-bot[webhooks]"
安装龙卷风〜= 6.4库。如果要使用telegram.ext.Updater.start_webhook
/ telegram.ext.Application.run_webhook
,请使用此操作。pip install "python-telegram-bot[callback-data]"
安装cachetools> = 5.3.3,<5.6.0库。如果要使用任意callback_data,请使用此功能。pip install "python-telegram-bot[job-queue]"
安装apscheduler〜= 3.10.4库并强制执行pytz> = 2018.6,其中pytz
是APScheduler
的依赖性。如果您想使用telegram.ext.JobQueue
,请使用此功能。要安装多个可选依赖项,请通过逗号分隔,例如pip install "python-telegram-bot[socks,webhooks]"
。
此外,还提供了两个快捷方式:
pip install "python-telegram-bot[all]"
安装所有可选依赖性。pip install "python-telegram-bot[ext]"
安装与telegram.ext
相关的所有可选依赖项,即[rate-limiter, webhooks, callback-data, job-queue]
。 安装库后,您可以开始使用它 - 让我们开始吧!
我们的Wiki包含API的介绍,解释了如何通过python-telegram-bot
访问纯机器人API。此外,教程:您的第一个机器人提供了介绍如何在telegram.ext
模块的帮助下如何轻松编程聊天机器人。
python-telegram-bot
的技术参考。它包含所有可用类,模块,方法和参数以及ChangElog的描述。python-telegram-bot
和其他有用资源的不同功能的更多详细介绍,这些功能超出了技术文档。python-telegram-bot
的不同特征。即使不是您学习的方法,也要查看echobot.py
。这是大多数机器人的事实上的基础。这些示例的代码已发布到公共领域,因此您可以从抓取代码并在其顶部进行构建开始。如果上面提到的资源没有回答您的问题或仅仅使您不知所措,则有几种获得帮助的方法。
自V20.0以来, python-telegram-bot
建立在pythons asyncio
模块的顶部。由于asyncio
通常是单线线程, python-telegram-bot
当前并不是要成为线程安全。 python-telegram-bots
API的值得注意的部分可能会引起问题(例如种族条件),例如,在多线程设置中使用时包括:
telegram.ext.Application/Updater.update_queue
telegram.ext.ConversationHandler.check/handle_update
telegram.ext.CallbackDataCache
telegram.ext.BasePersistence
telegram.ext.filters
模块中的所有类,允许在运行时添加/删除允许的用户/聊天欢迎各种尺寸的贡献。请查看我们开始的贡献指南。您还可以通过报告错误或功能请求来提供帮助。
有时我们会被问到我们是否接受捐款来支持这一发展。尽管我们欣赏了这个想法,但保持PTB是我们的爱好,而且我们几乎没有运行费用。因此,我们没有什么可以接受捐赠的。如果您仍然想捐款,我们会要求您捐赠给您选择的另一个开源项目/主动性。
您可以在LGPL-3下免费描述和许可修改,并复制,分发和修改软件。衍生作品(包括修改或与图书馆静态链接的任何内容)只能在LGPL-3下重新分布,但是使用库的应用程序不一定是。