【发布时间】:2016-07-26 04:51:33
【问题描述】:
短版
在全新安装烧瓶和 mongoalchemy 后,这两行:
from flask import Flask
from flask.ext.mongoalchemy import MongoAlchemy
失败:
ImportError: No module named objectid
我应该去哪里看?
详情
在 El Capitan 之后:
> sudo port install py27-flask py27-flask-mongoalchemy
我确认 MacPorts 已安装的版本:
> port installed | grep 'flask\|mongo'
py27-flask @0.10.1_1 (active)
py27-flask-mongoalchemy @0.5.3_0 (active)
py27-flask-script @2.0.5_0 (active)
py27-mongoalchemy @0.11_0 (active)
py27-pymongo @3.2.2_0 (active)
我正在运行 MacPorts Python:
> which python
/opt/local/bin/python
而且它是 2.7 分支上的最新版本:
> python --version
Python 2.7.11
然后是this 页面的第二行:
from flask import Flask
from flask.ext.mongoalchemy import MongoAlchemy
失败:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/flask/exthook.py", line 81, in load_module
reraise(exc_type, exc_value, tb.tb_next)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/flaskext/mongoalchemy/__init__.py", line 14, in <module>
from mongoalchemy import document, exceptions, fields, session, query
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/mongoalchemy/document.py", line 45, in <module>
from mongoalchemy.fields import ObjectIdField, Field, BadValueException, SCALAR_MODIFIERS
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/mongoalchemy/fields.py", line 60, in <module>
from pymongo.objectid import ObjectId
ImportError: No module named objectid
pymongo 应该有一个模块 objectid 吗?
编辑
嗯...mongodb 本身并没有作为烧瓶-mongoalchemy 的依赖项安装。好的,让我们手动操作:
> port list | grep mongodb
mongodb @3.2.4 databases/mongodb
> sudo port install mongodb
这没有帮助。弹出同样的错误。
【问题讨论】:
-
Pymongo 包含在所需的
bson包中,并在pymongo包中导入。看起来你可能会错过一些进口。无论如何,这是mongoalchemy。您的安装可能存在一些问题。 -
您愿意澄清一下吗?该网站使用“从 flask.ext.mongoalchemy 导入 MongoAlchemy”。它不使用 bson。 github.com/cobrateam/flask-mongoalchemy/blob/master/examples/… 但是
-
您是如何“安装”
MongoAlchemy模块的?错误提示未安装所需的依赖项。 -
mongoalchemy安装正常。port installed | grep mongoalchemy报告py27-flask-mongoalchemy @0.5.3_0 (active)和py27-mongoalchemy @0.11_0 (active)。 -
我说的是“如何”不是“如果”。同样,您似乎缺少必需的依赖项。无论如何,您真的不应该通过
ports进行安装,并且应该为您的项目使用“本地”安装和包管理的python,而不是“系统”分发。
标签: python mongodb flask osx-yosemite macports