ImportError:没有名为objectid的模块

我目前在Mac OS X 10.6.8上安装了django-mongodb-engine 0.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命令安装了该软件包,并且所有依赖项(如pymongo,djangotoolbox)都已随其一起安装。我使用的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_engine软件包已损坏,因为ObjectId不再导入pymongo内部。相反,它属于bson模块。

您对解决此问题有何建议?我应该克隆django-mongodb-engine项目并在github上修复吗?

回答:

我遇到了类似的问题,对我来说,问题是这条线:

from pymongo.objectid import ObjectId

该呼叫似乎在PyMongo <2.2的版本中有效

在pymongo 2.2中,导入objectid的调用是:

from bson.objectid import ObjectId

以上是 ImportError:没有名为objectid的模块 的全部内容, 来源链接: utcz.com/qa/402245.html

回到顶部