安装Ming 0.3.2后,我通过运行以下代码测试了安装:
>>> from ming.datastore import DataStore
>>> bind = DataStore('mongodb://localhost:27017/', database='tutorial')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: __init__() got an unexpected keyword argument 'database'
>>> ^D
我查看了安装文件,在datastore.py文件中,我发现该类的构造函数不包含“数据库”参数。
class DataStore(object):
def __init__(self, bind, name, authenticate=None):
self.bind = bind
self.name = name
self._authenticate = authenticate
self._db = None
然后我安装了Ming 0.3.0来查看datastore.py文件,发现DataStore类与文档(它包含一个数据库arg)相匹配,然后尝试了那个我遇到其他复杂情况的版本。
我使用easy_install来安装Ming,我安装了很好的mongodb和pymongo。我在OS X Lion上运行这些。任何关于让Ming跑步的建议都会受到赞赏。
答案 0 :(得分:2)
我认为最新版本的pymongo和ming可能存在冲突。
bind = DataStore('mongodb:// localhost:27017 /',name ='test')让我更进一步,但我最终只是单独使用pymongo。
答案 1 :(得分:2)
我遇到了同样的问题。以下是我尝试过的步骤,它的确有效!希望它也适用于您的环境。
通过以下方式卸载Ming 0.3.2版本: pip uninstall Ming
按pip install -Iv http://downloads.sourceforge.net/project/merciless/0.3.0/Ming-0.3.0.tar.gz
再次尝试明办公室网站上的示例。会有另一个错误
追踪(最近的呼叫最后):
文件“tutorial.py”,第1行,在&lt; module&gt;中 来自ming.datastore导入DataStore
在&lt; module&gt;中输入文件“/home/me/work/deploy/test/local/lib/python2.7/site-packages/ming/init.py”,第3行。 从会话导入会话
在&lt; module&gt;中输入文件“/home/me/work/deploy/test/local/lib/python2.7/site-packages/ming/session.py”,第7行。 来自pymongo.son进口SON
ImportError:没有名为son的模块
将“/home/me/work/deploy/test/local/lib/python2.7/site-packages/ming/session.py”的第7行更改为from bson.son import SON
再试一次。它会起作用。
这是我引用的链接。这是一个日本网页,但您可以通过谷歌翻译将其翻译成英文。 http://ryooo321.blogspot.com/2012/05/macsleepymongoose.html
答案 2 :(得分:0)
尝试删除database=
。
In [8]: from ming.datastore import DataStore
In [9]: bind = DataStore('mongodb://grid:27017/', 'tutorial')
In [10]: bind.name
Out[10]: 'tutorial'