Python 导入错误:无法导入名称';Bot&x27;从';电报';

Python 导入错误:无法导入名称';Bot&x27;从';电报';,python,python-3.x,heroku,telegram,telegram-bot,Python,Python 3.x,Heroku,Telegram,Telegram Bot,我正在尝试向Heroku部署一个简单的调用和响应机器人,但我一直遇到相同的错误,我不知道如何修复它。我发现这个程序可以在我的个人电脑上运行,但当我将它部署到Heroku时就不行了。我觉得这与我的进口声明有关: import random from telegram.ext import Updater from telegram.ext import CommandHandler from telegram.ext import MessageHandler from telegram.ext

我正在尝试向Heroku部署一个简单的调用和响应机器人,但我一直遇到相同的错误,我不知道如何修复它。我发现这个程序可以在我的个人电脑上运行,但当我将它部署到Heroku时就不行了。我觉得这与我的进口声明有关:

import random
from telegram.ext import Updater
from telegram.ext import CommandHandler
from telegram.ext import MessageHandler
from telegram.ext import Filters
from telegram.ext import messagequeue as mq
from telegram.utils.request import Request
import logging
import os
在推到heroku并运行它之后,我得到了这些错误:

2021-03-27T08:25:40.562359+00:00 heroku[web.1]: Starting process with command `python3 bog_bot.py`
2021-03-27T08:25:43.167956+00:00 heroku[web.1]: Process exited with status 1
2021-03-27T08:25:43.257029+00:00 heroku[web.1]: State changed from starting to crashed
2021-03-27T08:25:43.102105+00:00 app[web.1]: Traceback (most recent call last):
2021-03-27T08:25:43.102177+00:00 app[web.1]: File "/app/bog_bot.py", line 2, in <module>
2021-03-27T08:25:43.102489+00:00 app[web.1]: from telegram.ext import Updater
2021-03-27T08:25:43.102543+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/telegram/ext/__init__.py", line 21, in <module>
2021-03-27T08:25:43.102788+00:00 app[web.1]: from .basepersistence import BasePersistence
2021-03-27T08:25:43.102820+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/telegram/ext/basepersistence.py", line 25, in <module>
2021-03-27T08:25:43.103058+00:00 app[web.1]: from telegram import Bot
2021-03-27T08:25:43.103163+00:00 app[web.1]: ImportError: cannot import name 'Bot' from 'telegram' (/app/.heroku/python/lib/python3.9/site-packages/telegram/__init__.py)
2021-03-27T08:25:40.562359+00:00 heroku[web.1]:使用命令“python3 bog_bot.py”启动进程`
2021-03-27T08:25:43.167956+00:00 heroku[web.1]:进程已退出,状态为1
2021-03-27T08:25:43.257029+00:00 heroku[web.1]:状态从开始更改为崩溃
2021-03-27T08:25:43.102105+00:00应用程序[web.1]:回溯(最近一次通话):
2021-03-27T08:25:43.102177+00:00应用程序[web.1]:文件“/app/bog_bot.py”,第2行,在
2021-03-27T08:25:43.102489+00:00应用程序[web.1]:来自telegrame.ext导入更新程序
2021-03-27T08:25:43.102543+00:00 app[web.1]:文件“/app/.heroku/python/lib/python3.9/site packages/telegram/ext/_u init_u__;.py”,第21行
2021-03-27T08:25:43.102788+00:00应用程序[web.1]:从.basepersistence导入basepersistence
2021-03-27T08:25:43.102820+00:00应用程序[web.1]:文件“/app/.heroku/python/lib/python3.9/site packages/telegram/ext/basepersistence.py”,第25行
2021-03-27T08:25:43.103058+00:00应用程序[web.1]:来自电报导入机器人
2021-03-27T08:25:43.103163+00:00应用程序[web.1]:导入错误:无法从“电报”中导入名称“Bot”(/app/.heroku/python/lib/python3.9/site packages/telegram/\u init\u.py)
我非常感谢任何帮助,因为我已经为这个小问题寻找了几个小时的答案。

尝试删除

telegram==0.0.1 
更新
python电报bot
模块使用名称空间
telegram
。因此,将两个模块同时安装可能会导致错误。要修复此问题,您需要卸载
电报
模块。由于从
requirements.txt
中删除模块不会自动删除模块,因此您需要自己删除模块。见:

参考文献:
所以我发现问题不在于需求文件中的错误,而在于PIP文件中的错误。我从那个里删除了一堆需求,它工作得更好。我仍然包括电报库,但我认为可能是pyTelegramBotAPI库引起了我的问题。我还在另一个应用程序上重新启动了该项目,并对bot的代码做了一些更改。现在,导入部分如下所示:

import random
from telegram import Update
from telegram.ext import Updater
from telegram.ext import CommandHandler
from telegram.ext import MessageHandler
from telegram.ext import Filters
from telegram.ext import messagequeue as mq
import telegram
from telegram.utils.request import Request
import logging
import os

我不是专家,但是你有文件
requirements.txt
?您需要列出python标准库中不包含的模块,以便在其中使用。是的,我可以把它包括在这里:telegram==0.0.1 appdirs==1.4.4 APScheduler==3.6.3 certifi==2020.12.5 chardet==4.0.0 distlib==0.3.1 filelock==3.0.12 idna==2.10 importlib元数据==1.5.0更多itertools==4.2.0 pipenv==11.9.0 pyTelegramBotAPI==3.7.6 python Telegrambot==13.4.1 pytz==2021.1请求==2.25.1.1.0 Teletz1.0本地Teletz1==1.0urllib3==1.26.4 virtualenv==20.4.3 virtualenv clone==0.3.0 zip==1.0.0不,这不起作用either@JonathanBear从我读到的与这个问题相关的帖子中,解决方案都是关于python telegram bot未安装(或安装正确)的。或者可能是模块版本不匹配?我的需求文件直接来自我的pipenv冻结,如果文件未正确安装在此处,我不确定如何正确安装该文件。您可以执行
heroku run pip list
?另请参见第13.4.1版