【发布时间】:2018-12-15 23:56:41
【问题描述】:
这里的总蟒蛇菜鸟。尝试学习python。我正在使用具有高山脉10.13.5 的macosx 并拥有python Python 2.7.10。我的任务是使用 python 运行 mongodb 查询,但无济于事,因为我试图使用pymongo。
这是我看到的消息:(在命令行python mydev.py 上执行)
File "mydev.py", line 3, in <module>
import pymongo
File "/usr/local/lib/python2.7/site-packages/pymongo/__init__.py", line 77, in <module>
from pymongo.collection import ReturnDocument
File "/usr/local/lib/python2.7/site-packages/pymongo/collection.py", line 20, in <module>
from bson.code import Code
File "/usr/local/lib/python2.7/site-packages/bson/__init__.py", line 84, in <module>
from bson.dbref import DBRef
File "/usr/local/lib/python2.7/site-packages/bson/dbref.py", line 17, in <module>
from copy import deepcopy
File "/usr/local/Cellar/python@2/2.7.15_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/copy.py", line 52, in <module>
import weakref
File "/usr/local/Cellar/python@2/2.7.15_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/weakref.py", line 14, in <module>
from _weakref import (
ImportError: cannot import name _remove_dead_weakref
我只用import pymongo 运行python shell 并运行脚本得到了同样的消息。
我的python脚本:
#!/usr/local/bin/python
import pymongo
import json
from pymongo import MongoClient
# DB connect
client = MongoClient('10.1.2.345')
db = client.test
collection = db.my_profiles
# Read
print collection.find_one({"account" : "foo", "profile" : "bar", "info.published" : True}, {"account":1, "profile":1,"settings.region":1})
所以,我不知道如何让它工作。我错过了什么 pkgs?感谢您的帮助。
【问题讨论】:
-
你还需要添加端口号
-
我在运行 python shell 并使用
>>> import pymongo时收到了相同的错误消息 -
您有一个混乱的 Python 路径,并且正在从错误的 Python 版本导入模块。基本上,这就是你:xkcd.com/1987 你需要确定你实际运行的是哪个 Python 以及它来自哪里,并确保你运行的是那个 Python,并且只有那个 Python,而
sys.path上没有任何其他条目。它与 pymongo 没有任何关系。 -
天哪,有关于如何清理它的文档吗?
标签: python python-2.7 pymongo