导入错误:无法从'collections'导入名称'MutableMapping' (/app/.heroku/python/lib/python3.10/collections/__init



我正试图将我的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内部库文件使用或导入了,这似乎产生了一些错误,使我无法正确运行我的应用程序。

有人以前遇到过这个问题,知道如何解决吗?我搜索了所有的谷歌,但没有发现任何相关的

这些错误来自python 3.10,它还不稳定,Heroku默认情况下将使用最新的python版本我建议你用3.9。添加一个";runtime.txt";在带有正文的代码中:

python-3.9.6 # or version you are using

对于Python 3.10.6

ImportError:无法从"collections"导入名称"MutableMapping"(/usr/local/lib/python3.10/collections/init.py(

/usr/local/lib/python3.10/collections/init.py中缺少For me Modules Mapping、MutableMapping和Sequence添加它们解决了问题。

from _collections_abc import Mapping
from _collections_abc import MutableMapping
from _collections_abc import Sequence

最新更新