Python-升级到3.9.1后出现bson导入错误

Python-升级到3.9.1后出现bson导入错误,python,Python,我有一个脚本,是在python的早期版本(3.8)下编写的 当我现在运行脚本时,它会出现堆栈跟踪: python .\ec2_mongo.py Traceback (most recent call last): File "C:\Users\tdun0002\OneDrive - Synchronoss Technologies\Desktop\important_folders\Jokefire\git\jf_cloud_scripts\aws_scripts\python\a

我有一个脚本,是在python的早期版本(3.8)下编写的

当我现在运行脚本时,它会出现堆栈跟踪:

python .\ec2_mongo.py
Traceback (most recent call last):
  File "C:\Users\tdun0002\OneDrive - Synchronoss Technologies\Desktop\important_folders\Jokefire\git\jf_cloud_scripts\aws_scripts\python\aws_tools\ec2_mongo.py", line 11, in <module>
    from pymongo import MongoClient, errors
  File "C:\Users\tdun0002\OneDrive - Synchronoss Technologies\Desktop\important_folders\Jokefire\git\jf_cloud_scripts\aws_scripts\python\aws_tools\venv\lib\site-packages\pymongo\__init__.py", line 87, in <module>
    from pymongo.collection import ReturnDocument
  File "C:\Users\tdun0002\OneDrive - Synchronoss Technologies\Desktop\important_folders\Jokefire\git\jf_cloud_scripts\aws_scripts\python\aws_tools\venv\lib\site-packages\pymongo\collection.py", line 20, in <module>
    from bson.code import Code
  File "C:\Users\tdun0002\OneDrive - Synchronoss Technologies\Desktop\important_folders\Jokefire\git\jf_cloud_scripts\aws_scripts\python\aws_tools\venv\lib\site-packages\bson\code.py", line 18, in <module>
    from bson.py3compat import abc, string_type, PY3, text_type
ImportError: cannot import name 'abc' from 'bson.py3compat'
使用
bson
包中的
ObjectId
的代码如下所示:

def insert_doc(mydict):
    _, _, instance_col = set_db()
    mydict["_id"] = ObjectId()
    instance_doc = instance_col.insert_one(mydict)
    if __name__ == "__main__":
        message = "* MongoDB Insert Document *"
        banner(message, "*")
        message = f"MongoDB record inserted: {instance_doc.inserted_id}"
        banner(message)
    return instance_doc

我不知道为什么这在3.8下有效,但我在3.9.1下得到了stacktrace。如何在较新版本下使其正常工作?

这可能是由于版本不匹配造成的

试着做:

pip uninstall bson
pip uninstall pymongo
pip install pymongo

您是否正在使用虚拟环境和依赖关系管理器?我希望如此。在这种情况下,只需核化环境,使用Python3.9创建一个新环境,然后重新安装依赖项。
pip uninstall bson
pip uninstall pymongo
pip install pymongo