【问题标题】:Server Selection Timeout Error, MongoDB Change Streams服务器选择超时错误,MongoDB 更改流
【发布时间】:2022-12-15 18:39:35
【问题描述】:

我正在尝试使用以下代码测试插入到 Mongodb Change 流中。只有这两行

client = pymongo.MongoClient(CONNECTION_STR)
print(client.changestream.collection.insert_one({"hello": "world"}).inserted_id)

运行此 python 文件时出现的错误如下,

Traceback (most recent call last):
  File "D:\PyMongo Change Streams\test.py", line 7, in <module>
    print(client.changestream.collection.insert_one({"hello": "world"}).inserted_id)
  File "D:\PyMongo Change Streams\myvenv\lib\site-packages\pymongo\collection.py", line 697, in insert_one
  File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\contextlib.py", line 135, in __enter__
    return next(self.gen)
  File "D:\PyMongo Change Streams\myvenv\lib\site-packages\pymongo\mongo_client.py", line 1611, in _tmp_session
    s = self._ensure_session(session)
  File "D:\PyMongo Change Streams\myvenv\lib\site-packages\pymongo\mongo_client.py", line 1598, in _ensure_session
    return self.__start_session(True, causal_consistency=False)
  File "D:\PyMongo Change Streams\myvenv\lib\site-packages\pymongo\mongo_client.py", line 1551, in __start_session
    server_session = self._get_server_session()
  File "D:\PyMongo Change Streams\myvenv\lib\site-packages\pymongo\mongo_client.py", line 1584, in _get_server_session
    return self._topology.get_server_session()
  File "D:\PyMongo Change Streams\myvenv\lib\site-packages\pymongo\topology.py", line 431, in get_server_session
    self._select_servers_loop(
  File "D:\PyMongo Change Streams\myvenv\lib\site-packages\pymongo\topology.py", line 199, in _select_servers_loop
    raise ServerSelectionTimeoutError(
pymongo.errors.ServerSelectionTimeoutError: PY_SSIZE_T_CLEAN macro must be defined for '#' formats,PY_SSIZE_T_CLEAN macro must be defined for '#' formats,PY_SSIZE_T_CLEAN macro must be defined for '#' formats

我还使用以下代码测试了连接,它运行良好并打印出数据库信息。

# try:
#     client = pymongo.MongoClient(CONNECTION_STR)
#     db = client.API
#     print(db)
# except Exception as e:
#     print(e)

谁能帮我解释一下这个错误?

ServerSelectionTimeoutError(
pymongo.errors.ServerSelectionTimeoutError: PY_SSIZE_T_CLEAN macro must be defined for '#' formats,PY_SSIZE_T_CLEAN macro must be defined for '#' formats,PY_SSIZE_T_CLEAN macro must be defined for '#' formats

这是我第一次使用 MongoDB changestream。请帮我。先感谢您!

【问题讨论】:

    标签: python mongodb


    【解决方案1】:

    我只是检查包的版本并修复了这个问题。

    【讨论】:

      猜你喜欢
      • 2022-12-21
      • 2020-05-17
      • 2012-12-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多