I get some very strange error using MongoKit:
>>> from mongokit import *
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/mongokit/__init__.py", line 35, in <module>
from document import Document, ObjectId
File "/usr/local/lib/python2.7/dist-packages/mongokit/document.py", line 48, in <module>
from pymongo.objectid import ObjectId
ImportError: No module named objectid
I tried everything to find the reason but nothing helps. Actually I googled "ImportError: No module named objectid" error and it has no results at all. I tried to use MongoKit following the simple tutorial http://namlook.github.com/mongokit/introduction.html#a-quick-example and the first line of the tutorial produces this strange error. Below is the log of MongoKit installation.
What I'm doing wrong?
user@server:~$ sudo pip install mongokit
Downloading/unpacking mongokit
Downloading mongokit-0.7.2.tar.gz (69Kb): 69Kb downloaded
Running setup.py egg_info for package mongokit
Downloading/unpacking pymongo>=2.0.1 (from mongokit)
Downloading pymongo-2.2.tar.gz (228Kb): 228Kb downloaded
Running setup.py egg_info for package pymongo
Downloading/unpacking anyjson>=0.2.2 (from mongokit)
Downloading anyjson-0.3.1.tar.gz
Running setup.py egg_info for package anyjson
Installing collected packages: mongokit, pymongo, anyjson
Running setup.py install for mongokit
Running setup.py install for pymongo
building 'bson._cbson' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Ibson -I/usr/include/python2.7 -c bson/_cbsonmodule.c -o build/temp.linux-i686-2.7/bson/_cbsonmodule.o
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Ibson -I/usr/include/python2.7 -c bson/time64.c -o build/temp.linux-i686-2.7/bson/time64.o
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Ibson -I/usr/include/python2.7 -c bson/buffer.c -o build/temp.linux-i686-2.7/bson/buffer.o
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Ibson -I/usr/include/python2.7 -c bson/encoding_helpers.c -o build/temp.linux-i686-2.7/bson/encoding_helpers.o
gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro build/temp.linux-i686-2.7/bson/_cbsonmodule.o build/temp.linux-i686-2.7/bson/time64.o build/temp.linux-i686-2.7/bson/buffer.o build/temp.linux-i686-2.7/bson/encoding_helpers.o -o build/lib.linux-i686-2.7/bson/_cbson.so
building 'pymongo._cmessage' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Ibson -I/usr/include/python2.7 -c pymongo/_cmessagemodule.c -o build/temp.linux-i686-2.7/pymongo/_cmessagemodule.o
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Ibson -I/usr/include/python2.7 -c bson/buffer.c -o build/temp.linux-i686-2.7/bson/buffer.o
gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro build/temp.linux-i686-2.7/pymongo/_cmessagemodule.o build/temp.linux-i686-2.7/bson/buffer.o -o build/lib.linux-i686-2.7/pymongo/_cmessage.so
Running setup.py install for anyjson
Successfully installed mongokit pymongo anyjson
Cleaning up...
It's an error in the dependencies. As of PyMongo 1.11 objectid
lives in the bson
module, not pymongo
.
As Electro said, it's a Bug.
I used the following dirty little hack to keep my site running until it is fixed:
import sys
import pymongo
import bson.objectid
pymongo.objectid = bson.objectid
sys.modules["pymongo.objectid"] = bson.objectid
来源:https://stackoverflow.com/questions/10401499/mongokit-importerror-no-module-named-objectid-error