ImportError:没有名为objectid的模块

2024-05-17 05:26:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我的Mac OS X 10.6.8上当前安装了django-mongodb-engine0.4.0版本,在导入“编译器”模块时奇怪地遇到了一个有趣的错误:

>> from django_mongodb_engine import compiler

我得到了以下错误:

ImportError Traceback (most recent call last)
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django_extensions/management/commands/shell_plus.pyc in <module>()
----> 1 from django_mongodb_engine import compiler

/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django_mongodb_engine/compiler.pyc in <module>()
      15 from pymongo.errors import PyMongoError
      16 from pymongo import ASCENDING, DESCENDING
 ---> 17 from pymongo.objectid import ObjectId, InvalidId
      18 
      19 from djangotoolbox.db.basecompiler import NonrelQuery, NonrelCompiler, \

ImportError: No module named objectid

我通过pip命令安装了这个包,所有依赖项(如pymongodjangotoolbox)都已随它一起安装。我使用的pip命令是:

>> sudo env ARCHFLAGS='-arch i386 -arch x86_64' pip install --upgrade  django-mongodb-engine

相关软件包的当前版本为:

>> pip freeze | grep mongo
django-mongodb-engine==0.4.0
pymongo==2.2

我怀疑django_mongodb_引擎包已损坏,因为ObjectId不再导入到pymongo中。相反,它属于bson模块。

你有什么建议来解决这个问题?我应该克隆django mongodb引擎项目并修复github吗?


Tags: 模块pipdjangofromimport版本compilermongodb
1条回答
网友
1楼 · 发布于 2024-05-17 05:26:25

我遇到过类似的事情,对我来说,问题是这句话:

from pymongo.objectid import ObjectId

这个调用似乎在PyMongo<;2.2版本中有效

在pymongo 2.2中,对import objectid的调用是:

from bson.objectid import ObjectId
网友
2楼 · 发布于 2024-05-17 05:26:25

我试图直接用pip安装bson。卸载,然后安装pymongo,错误不会再次出现。

网友
3楼 · 发布于 2024-05-17 05:26:25

看起来他们已经知道了(参见this pull request),但是还没有人针对development分支创建pull请求。你可以尝试修复它并提交一个新的请求。

相关问题 更多 >