У меня есть django-mongodb-engine версия 0.4.0 установлена на моей Mac OS X 10.6.8 и странно встретили интересную ошибку при импорте модуля "компилятор":
>> 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?
Спасибо заранее.