运行Flask待办项目时遇ImportError:无法从bson导入_get_object_size
解决Flask-PyMongo的bson导入错误
错误原因
这个ImportError是由于单独安装的bson库与PyMongo自带的bson模块冲突,或者PyMongo、Flask-PyMongo版本不兼容导致的。PyMongo本身已经内置了bson模块,不需要单独安装第三方bson库。
解决步骤
- 卸载单独安装的bson库:
pip uninstall bson -y - 升级PyMongo到兼容版本:
pip install --upgrade pymongo - 同步升级Flask-PyMongo:
pip install --upgrade flask-pymongo
验证代码
你的待办事项代码本身没有问题,修复依赖后可以正常运行,注意将connectionstring替换为你的MongoDB实际连接字符串:
from flask import Flask, request, jsonify from flask_pymongo import PyMongo app = Flask(__name__) # 替换为你的MongoDB连接字符串 app.config['MONGO_URI'] = 'mongodb://localhost:27017/your_database_name' mongo = PyMongo(app) # 创建新待办事项 @app.route('/api/todo', methods=['POST']) def create_todo(): new_todo = { "task": "study", "date": 18, "completed": False } result = mongo.db.todos.insert_one(new_todo) print(result, "已创建") return jsonify({"消息": "待办事项创建成功", "ID": str(result.inserted_id)}), 201 if __name__ == '__main__': app.run(debug=True)
内容的提问来源于stack exchange,提问作者mew
相关产品推荐
相关产品推荐

