I am unable to do this:
from pymongo import MongoClient
I get:
>>> import pymongo
>>> from pymongo import MongoClient
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: cannot import name MongoClient
>>>
I am able to import pymongo
without issues.
I am running mongodb 2.2.3
and Python 2.7
.
I've also tried this:
>>> connection = pymongo.MongoClient()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'MongoClient'
>>>
What am I doing wrong?
That package is probably outdated or broken. Run sudo apt-get purge python-pymongo
, then sudo apt-get install python-pip
, then finally sudo pip install pymongo
.
According to docs , MongoClient
was introduced in version 2.4. As you installed pymongo
from your distribution repository, it's quite possible it's not the most recent version. Try installing it via PiP (remove the one you have installed first):
pip install pymongo
If you had named your script pymongo.py, which masks the pymongo module from which you are importing.
Rename your script to something else like xyz.py (and delete the pymongo.pyc file if one was created next to it).
I would like to suggest more robust answer:
pip show pymongo
now see where it direct you and from there simply remove the pymongo directory
rm -rf <the dir where pymongo lay>/pymongo*
Now, you can safely install pymongo again:
pip install pymongo
This problem may occur if you have multiple .py programs in the current working directory. Deleting them solved my error. I am not sure of the reason though.
是的,你需要更新使用,检查升级部分说http://api.mongodb.org/python/current/installation.html
easy_install -U pymongo
If you used pymongo.Connection and encountered error, you should know that after the new updates, you should use pymongo.MongoClient instead. I had this issue so hopefully this will be helpful to someone else.
Python Script
Try it once, into python script run following statement
# try.py
import pymongo
If above statement didn't throw any exception then you need to install pymongo-2.4
, if existing pymongo
verion is 2.3
Open terminal
First you need to uninstall old pymongo
version
pip uninstall pymongo
Then use following commands to install pymongo-2.4
wget http://pypi.python.org/packages/source/p/pymongo/pymongo-2.4.tar.gz
tar xzf pymongo-2.4.tar.gz
cd pymongo-2.4
python setup.py install
I had the same problem on Ubuntu 16.04.
This solved my problem:
sudo apt-get install build-essential python-dev
sudo apt-get install python-pip
sudo pip install pymongo
Worked for me for conda env
pip uninstall pymongo
then
pip install pymongo
确保你的 python 源文件没有被调用 pymongo.py
将文件名从 pymongo.py 更改为其他名称。
You have a file named queue.py in your project folder. Rename that file, and that should fix the problem.
For newer version of pymongo, you don't need to import MongoClient. Do the following:
import pymongo
client = pymongo.MongoClient("localhost", 27017)
db = client.test_database
db.test_table
You'll get:
Collection(Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True), 'test_database'), 'test_table')
I had the same issue with mypy
type checks for the MongoClient
class of pymongo
. This solved the issue:
from pymongo.mongo_client import MongoClient
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.