我正在尝试将我的Flask应用程序部署到Heroku服务器上,但是我保留了“内部服务器错误”,当我检查应用程序错误日志时,我发现了以下内容:
提取Heroku错误日志:
[...]
2022-03-26T02:07:20.728861+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.10/site-packages/flask/sessions.py", line 14, in <module>
2022-03-26T02:07:20.728861+00:00 app[web.1]: from collections import MutableMapping
2022-03-26T02:07:20.728865+00:00 app[web.1]: ImportError: cannot import name 'MutableMapping' from 'collections'(/app/.heroku/python/lib/python3.10/collections/__init__.py)
2022-03-26T02:07:20.728865+00:00 app[web.1]: [2022-03-26 02:07:20 +0000] [10] [INFO] Worker exiting (pid: 10)
2022-03-26T02:07:20.825469+00:00 app[web.1]: Traceback (most recent call last):
2022-03-26T02:07:20.825566+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.10/site-packages/gunicorn/arbiter.py", line 209, in run
2022-03-26T02:07:20.825875+00:00 app[web.1]: self.sleep()
2022-03-26T02:07:20.825877+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.10/site-packages/gunicorn/arbiter.py", line 357, in sleep
2022-03-26T02:07:20.826299+00:00 app[web.1]: ready = select.select([self.PIPE[0]], [], [], 1.0)
2022-03-26T02:07:20.826300+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.10/site-packages/gunicorn/arbiter.py", line 242, in handle_chld
2022-03-26T02:07:20.826474+00:00 app[web.1]: self.reap_workers()
2022-03-26T02:07:20.826474+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.10/site-packages/gunicorn/arbiter.py", line 525, in reap_workers
2022-03-26T02:07:20.826714+00:00 app[web.1]: raise HaltServer(reason, self.WORKER_BOOT_ERROR)
2022-03-26T02:07:20.826715+00:00 app[web.1]: gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>
[...]
问题是,正如您可能看到的,我没有在我的任何文件中使用或导入MutableMapping,但是一些Python内部库文件确实使用或导入了它,这似乎产生了一些错误,使我无法正确地运行我的应用程序。
有没有人曾经有过这个问题,并知道如何解决?我搜索了所有的谷歌,但没有发现任何相关的
发布于 2022-04-03 03:58:23
这些错误来自python 3.10,目前还不稳定,Heroku默认将使用最新的python版本,我建议您使用3.9。在代码中添加一个"runtime.txt“:
python-3.9.6 # or version you are using
发布于 2022-11-10 08:55:26
用于Python3.10.6
(/usr/local/lib/python3.10/collections/init.py):无法从“
”ImportError导入名称“MutableMapping”
对me来说,模块映射、/usr/local/lib/python3.10/collections/init.py中缺少的MutableMapping和序列解决了问题。
from _collections_abc import Mapping
from _collections_abc import MutableMapping
from _collections_abc import Sequence
https://stackoverflow.com/questions/71625118
复制相似问题