我想向 Vercel 上托管的 Flask 应用程序添加数据库功能。
使用
pymongo
时,网站抛出 HTTP 500
说我的应用程序崩溃了。
它还说我应该检查日志。
日志显示此错误:
[ERROR] Runtime.ImportModuleError: Unable to import module 'vc__handler__python': cannot import name 'MutableMapping' from 'collections' (/var/lang/lib/python3.12/collections/__init__.py)
Traceback (most recent call last):INIT_REPORT Init Duration: 1348.16 ms Phase: invoke Status: error Error Type: Runtime.Unknown
也许
pymongo
需要创建可变对象,而 Vercel 上的 Python 解释器没有?我不知道。
从错误消息“cannot import name 'MutableMapping' from 'collections'”来看,您正在运行的代码似乎针对旧版本的 Python。 Python 3.9 的文档指出:
自 3.3 版本起已弃用,将在 3.10 版本中删除:已移动 Collections 抽象基类到collections.abc 模块。为了 向后兼容,它们在此模块中继续可见 通过 Python 3.9。
此外,请确保 PyMongo 版本与您正在使用的 Python 版本兼容。您使用的是 Python 3.12,因此 PyMongo 版本应为 4.5 或更高版本。在以下位置查找兼容性矩阵: https://www.mongodb.com/docs/languages/python/pymongo-driver/current/compatibility/#language-compatibility 。如果您必须升级 PyMongo 版本,您可以使用
python3 -m pip install --upgrade pymongo
来完成