安装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上运行这些。如有任何关于让明参选的建议,我们将不胜感激。
我认为可能与最新版本的pymongo和ming有冲突。
bind=数据存储('mongodb://localhost:27017/',name='test')让我走得更远,但我最终只使用了pymongo本身。
我也遇到过同样的问题。以下是我尝试过的步骤,它很有效!希望它对你的环境也有效。
-
卸载Ming 0.3.2版本的方法:
pip uninstall Ming
-
安装0.3.0通过:
pip install -Iv http://downloads.sourceforge.net/project/merciless/0.3.0/Ming-0.3.0.tar.gz
-
再试试明办公室网站上的例子。将出现另一个错误
追踪(最近一次通话):
文件"tutorial.py",第1行,在<模块>从ming.datastore导入数据存储
文件"/home/me/work/deploy/test/local/lib/python2.7/site packages/ming/init.py",第3行,在<模块>从会话导入会话
文件"/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
尝试删除database=
。
In [8]: from ming.datastore import DataStore
In [9]: bind = DataStore('mongodb://grid:27017/', 'tutorial')
In [10]: bind.name
Out[10]: 'tutorial'