在 pymongo 4.9 新版本发布之后,我在使用 motor 时收到此 ImportError:

../***_mongo/src/***_mongo/async_context.py:4: in <module>
    from motor.motor_asyncio import AsyncIOMotorClient, AsyncIOMotorDatabase
/opt/hostedtoolcache/Python/3.12.6/x64/lib/python3.12/site-packages/motor/motor_asyncio.py:16: in <module>
    from . import core, motor_gridfs
/opt/hostedtoolcache/Python/3.12.6/x64/lib/python3.12/site-packages/motor/core.py:30: in <module>
    from pymongo.cursor import _QUERY_OPTIONS, Cursor, RawBatchCursor
E   ImportError: cannot import name '_QUERY_OPTIONS' from 'pymongo.cursor' (/opt/hostedtoolcache/Python/3.12.6/x64/lib/python3.12/site-packages/pymongo/cursor.py)

只需尝试运行代码:

from motor.motor_asyncio import AsyncIOMotorClient, AsyncIOMotorDatabase


print(AsyncIOMotorClient)
print(AsyncIOMotorDatabase)

当前的电机释放因此已完全损坏。

我尝试使用最新版本的 motor(3.5.1)


最佳答案
3

对于遇到此问题的用户,请参阅跟踪此问题的 Jira 票证。我们目前正在调查。

当前的修复方法是:

  • 升级到与 PyMongo >=4.9 兼容(且需要)的 motor 3.6.0:pip install –upgrade ‘motor>=3.6’
  • 如果您正在使用 motor <3.6 并且无法升级,请将 pymongo 版本限制为 <4.9:例如 pip install –upgrade ‘motor==3.5.1’ ‘pymongo<4.9’

直到 motor 更新以解决 pymongo 4.9 中的重大变化,将 pymongo 固定到 4.8.0

我的 requirements.txt 中有这个组合并且它可以起作用。

motor==3.4.0
pymongo==4.8.0