Python使用pip安装bson库报错求助:ImportError问题排查
解决
pip install bson时的ImportError问题 嘿,我之前也踩过这个坑!你遇到的错误是因为PyPI上那个名为bson的包已经彻底过时且无人维护了,它的安装脚本依赖的pip内部API早就被移除了,所以新版pip根本跑不了它的安装流程。
正确的解决办法:安装pymongo而不是单独的bson
MongoDB官方已经把bson模块整合到pymongo库里了,你完全不需要单独安装bson包,直接执行下面的命令就行:
pip install pymongo
安装完成后,你可以直接在Python里导入bson使用,和单独装bson的用法完全一样:
import bson # 比如使用bson的ObjectId from bson.objectid import ObjectId
为什么旧的bson包会报错?
那个版本为0.5.2的旧bson包,它的setup.py里写了:
from pip import get_installed_distributions
但这个get_installed_distributions函数在pip 10.0版本之后就被移到了pip的内部模块(pip._internal.utils.misc),而且官方明确禁止外部代码调用这些内部API。所以当你用新版pip安装这个旧包时,就会触发ImportError。
额外步骤(如果已经装了旧包)
如果你之前尝试安装过那个旧的bson包,可以先卸载它:
pip uninstall bson -y
然后再安装pymongo就没问题了。
内容的提问来源于stack exchange,提问作者lotus echo
相关产品推荐
相关产品推荐

