3

安装 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 跑步的建议将不胜感激。

4

3 回答 3

2

我遇到了同样的问题。这是我尝试过的步骤,它有效!希望它也适用于您的环境。

  1. 通过以下方式卸载 Ming 0.3.2 版本: pip uninstall Ming

  2. 通过以下方式安装 0.3.0:pip install -Iv http://downloads.sourceforge.net/project/merciless/0.3.0/Ming-0.3.0.tar.gz

  3. 再次尝试明办网站上的示例。会有另一个错误

    回溯(最后一次调用):
    文件“tutorial.py”,第 1 行,在 <module> from ming.datastore import DataStore

    File "/home/me/work/deploy/test/local/lib/python2.7/site -packages/ming/ init .py”,第 3 行,在 <module> 中从会话导入会话

    文件“/home/me/work/deploy/test/local/lib/python2.7/site-packages/ming/session. py",第 7 行,在 <module> 中 from pymongo.son import SON

    ImportError: No module named son

  4. 将“/home/me/work/deploy/test/local/lib/python2.7/site-packages/ming/session.py”的第7行更改为from bson.son import SON

  5. 再试一次。它会起作用。

这是我引用的链接。这是一个日文网页,但你可以通过谷歌翻译器将其翻译成英文。 http://ryooo321.blogspot.com/2012/05/macsleepymongoose.html

于 2012-09-27T09:51:44.543 回答
2

我认为可能与最新版本的pymongo和ming有冲突。

bind = DataStore('mongodb://localhost:27017/', name='test') 让我走得更远,但我最终只使用了 pymongo 本身。

于 2012-09-13T17:55:23.513 回答
0

尝试删除database=.

In [8]: from ming.datastore import DataStore

In [9]: bind = DataStore('mongodb://grid:27017/', 'tutorial')

In [10]: bind.name
Out[10]: 'tutorial'
于 2012-12-22T00:07:55.287 回答