本文介绍了ImportError:没有名为objectid的模块的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 我目前 django-mongodb-engine 0.4.0版本安装在我的Mac OS X 10.6.8上,并在导入编译器模块时遇到一个有趣的错误: >> ;从django_mongodb_engine导入编译器 我收到以下错误: ImportError Traceback(最近的最后一次调用) /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django_extensions < module>()中的/management/commands/shell_plus.pyc ----> 1从django_mongodb_engine导入编译器 /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django_mongodb_engine/compiler.pyc在< module>() 15从pymongo.errors import PyMongoError 16从pymongo import ASCENDING,DESCENDING ---> 17从pymongo.objectid import ObjectId,InvalidId 18 19 from djangotoolbox.db.basecompiler import NonrelQuery,NonrelCompiler,\ ImportError:没有名为objectid的模块我已经通过 pip 命令和所有依赖关系,如 pymongo , djangotoolbox 已经一起安装。我使用的pip命令是这样的: >> sudo env ARCHFLAGS =' - arch i386 -arch x86_64'pip install --upgrade django-mongodb-engine 相关包的当前版本是: >>点冻| grep mongo django-mongodb-engine == 0.4.0 pymongo == 2.2 我怀疑django_mongodb_engine包已损坏,因为ObjectId不在pymongo内导入。相反,它属于 bson 模块。 您有什么建议来解决这个问题?我应该克隆django-mongodb引擎项目并修复github吗? 提前感谢。解决方案我遇到类似的事情,对我来说,问题是这一行: from pymongo.objectid import ObjectId 该调用似乎适用于PyMongo& 2.2 在pymongo 2.2中,import objectid的调用是: 从bson.objectid import ObjectId I have currently django-mongodb-engine 0.4.0 version installed on my Mac OS X 10.6.8 and weirdly encountered an interesting error while importing the 'compiler' module:>> from django_mongodb_engine import compilerand I got the following error: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 objectidI installed the package via pip command and all the dependencies like pymongo, djangotoolbox have been installed along with it. The pip command I'd used is this:>> sudo env ARCHFLAGS='-arch i386 -arch x86_64' pip install --upgrade django-mongodb-engineThe current versions of the related packages are:>> pip freeze | grep mongodjango-mongodb-engine==0.4.0pymongo==2.2I suspect the django_mongodb_engine package is broken because ObjectId is not imported inside pymongo anymore. Instead, it belongs to bson module.What are your suggestions to fix this problem? Should I clone the django-mongodb-engine project and fix on github?Thanks in advance. 解决方案 I've ran into something similar, for me the problem was this line:from pymongo.objectid import ObjectIdThe call seems to work in versions of PyMongo < 2.2In pymongo 2.2 the call to import objectid is:from bson.objectid import ObjectId 这篇关于ImportError:没有名为objectid的模块的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!
09-12 03:57
查看更多