Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pymongo应该有一个模块objectid吗?_Python_Mongodb_Flask_Osx Yosemite_Macports - Fatal编程技术网

Python pymongo应该有一个模块objectid吗?

Python pymongo应该有一个模块objectid吗?,python,mongodb,flask,osx-yosemite,macports,Python,Mongodb,Flask,Osx Yosemite,Macports,短版 重新安装烧瓶和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已安装的

短版

重新安装烧瓶和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
但是第二页的第二行:

在以下情况下失败:

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

那没用。同样的错误也会弹出。

您有一个旧的mongoalchemy

请参阅提交“使用bson包而不是不推荐(然后删除)的pymongo包”:

也许你不应该信任python模块上的macports

编辑:

我发现macports不再维护该端口:

Pymongo不在所需的
bson
包中,也在包中导入。看起来您可能缺少一些导入。这是无论如何。您的安装可能有一些问题。您想澄清一下吗?该网站使用“from flask.ext.mongoalchemy import mongoalchemy”。它不使用bson。但是您是如何“安装”MongoAlchemy模块的?错误表明未安装所需的依赖项。
mongoalchemy
安装良好<代码>端口已安装| grep mongoalchemy报告
py27 flask mongoalchemy@0.5.3_0(活动)
py27 mongoalchemy@0.11_0(活动)
。我说“如何”而不是“如果”。同样,您似乎缺少必需的依赖项。无论如何,您确实不应该通过
端口安装,应该为您的项目使用“本地”安装并由包管理的python,而不是“系统”发行版。很好。甚至从2012年开始。如果您使用的是OS X,请推荐一种安装整套系统的方法。我刚刚安装了自制软件。我可以使用brew安装mongodb,但brew既不懂flask也不懂mongoalchemy。感谢您的帮助。virtualenv解决了这个问题。奇怪的是,virtualenv本身以及(AFAICT)所有模块都来自MacPorts,但只要它能工作,。。。
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
> port list | grep mongodb
mongodb                        @3.2.4          databases/mongodb
> sudo port install mongodb