2016-04-06 15 views
-2

Short VersionSollte Pymongo ein Modul objectid haben?

Nach einem frisch von Kolben installieren und mongoalchemy die beiden Linien:

from flask import Flask 
from flask.ext.mongoalchemy import MongoAlchemy 

mit fehlschlagen:

ImportError: No module named objectid 

Wo soll ich schauen?

Einzelheiten

Auf El Capitan nach:

> sudo port install py27-flask py27-flask-mongoalchemy 

bestätige, dass ich die Versionen, die MacPorts installiert hat:

> 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) 

, dass ich die MacPorts Python renne:

> which python 
/opt/local/bin/python 

und dass es die letzte auf dem 2,7 Zweig:

> python --version 
Python 2.7.11 

Aber dann die sehr zweite Zeile auf this Seite:

from flask import Flask 
from flask.ext.mongoalchemy import MongoAlchemy 

nicht mit:

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 

Sollte pymongo habe ein Modul objectid?

Die bisherigen Diskussionen von einem ähnlichen Problem sind (1, 2, 3, 4) irrelevant.

bearbeiten

Hmm ... mongodb selbst wurde nicht als Abhängigkeit von Kolben-mongoalchemy installiert. OK, machen wir es manuell:

> port list | grep mongodb 
mongodb      @3.2.4   databases/mongodb 
> sudo port install mongodb 

Das hilft nicht. Derselbe Fehler erscheint.

+0

Pymongo der erforderlichen 'bson' Paket ist in und auch in [' pymongo'] (http importiert://api.mongodb.org/python/1.7/api/pymongo/objectid.html) Paket.Sieht so aus, als ob Ihnen einige Importe fehlen. Das ist [mongoalchemy] (http://www.mongoalchemy.org/). Ihre Installation könnte einige Probleme haben. –

+0

Möchten Sie klären? Die Website verwendet "from kolb.ext.mongoalchemy Import MongoAlchemy". Es verwendet nicht bson. https://github.com/cobrateam/flask-mongoalchemy/blob/master/examples/library/library.py aber – Calaf

+0

Wie hast du das 'MongoAlchemy' Modul" installiert "? Der Fehler weist darauf hin, dass die erforderlichen Abhängigkeiten nicht installiert sind. –

Antwort

1

Sie haben eine alte Mongoalchemie.

Siehe commit "Verwenden Sie BSON Paket statt veraltet (dann entfernt) pymongo ones": https://github.com/jeffjenkins/MongoAlchemy/commit/9152d83a8515fd557b2d90fb0059fa42a24730fe

Vielleicht sollten Sie nicht Macports auf Python-Modulen vertrauen.

Edit:

ich den Hafen sehen, ist nicht mehr auf Macports gehalten: https://www.macports.org/ports.php?by=name&substr=mongoalchemy

+0

Schöner Fang. Und es ist ab 2012 sogar. Wenn Sie mit OS X arbeiten, empfehlen wir Ihnen, den gesamten Satz zu installieren. Ich habe gerade Homebrew installiert. Ich war in der Lage, Mongodb mit Brauen zu installieren, aber brauen weiß weder Flasche noch Mongoalchemy. – Calaf

+0

Danke für Ihre Hilfe. virtualenv hat das Problem gelöst. Seltsamerweise kam virtualenv selbst, zusammen mit (AFAICT) alle Module, von MacPorts, aber solange es funktioniert, ... – Calaf

Verwandte Themen