首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ImportError:没有名为objectid的模块

ImportError:没有名为objectid的模块
EN

Stack Overflow用户
提问于 2012-05-14 16:19:01
回答 4查看 29.2K关注 0票数 12

我目前在Mac 10.6.8上安装了django-mongodb-engine 0.4.0版本,在导入‘编译器’模块时奇怪地遇到了一个有趣的错误:

代码语言:javascript
复制
>> from django_mongodb_engine import compiler

我得到了以下错误:

代码语言:javascript
复制
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命令是这样的:

代码语言:javascript
复制
>> sudo env ARCHFLAGS='-arch i386 -arch x86_64' pip install --upgrade  django-mongodb-engine

相关包的当前版本为:

代码语言:javascript
复制
>> pip freeze | grep mongo
django-mongodb-engine==0.4.0
pymongo==2.2

我怀疑django_mongodb_engine包被破坏了,因为ObjectId不再被导入到pymongo中了。相反,它属于bson模块。

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-06-07 02:04:31

我也遇到过类似的情况,对我来说问题是这样的:

代码语言:javascript
复制
from pymongo.objectid import ObjectId

该调用似乎可以在PyMongo < 2.2版本中工作

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

代码语言:javascript
复制
from bson.objectid import ObjectId
票数 51
EN

Stack Overflow用户

发布于 2012-05-14 16:35:14

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

票数 3
EN

Stack Overflow用户

发布于 2016-11-21 04:25:56

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10579704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档