Flask ImportError mit bson unter OS X

Ich habe Mühe, eine einfache "Hello World" app, um die Arbeit mit Flask, MongoDB und Python. Die app ist der Bombenanschlag beim importieren von der bson Modul. Alle Module erfolgreich installiert wurden über pip und ich bin in einer virtualenvso bin ich nicht sicher, warum bin ich immer die Fehlermeldung: ImportError: cannot import name BSON

Hier ist mein Beispiel-Anwendung code:

import os
from flask import Flask
from flask import g
from flask import jsonify
from flask import json
from flask import request
from flask import url_for
from flask import redirect
from flask import render_template
from flask import make_response
import pymongo
from pymongo import Connection
from bson import BSON
from bson import json_util

app = Flask(__name__)

@app.route('/')
def hello():

    connection = Connection()
    # Get your DB
    db = connection.my_database
    # Get your collection
    cars = db.cars
    # Create some objects
    import datetime
    car = {"brand": "Ford",
           "model": "Mustang",
           "date": datetime.datetime.utcnow()}
    # Insert it
    cars.insert(car)
    json_docs = [json.dumps(doc, default=json_util.default) for doc in cars.find()]

    return json_docs


if __name__ == '__main__':
    # Bind to PORT if defined, otherwise default to 5000.
    port = int(os.environ.get('PORT', 5000))
    app.debug = True
    app.run(host='0.0.0.0', port=port)

Ich bin mir nicht sicher, wie man das Debuggen, oder wenn es etwas fehlt mir hier.

Bearbeiten: Ergebnisse der pip freeze:

Flask==0.9
Jinja2==2.6
WTForms==1.0.2
Werkzeug==0.8.3
bson==0.3.3
distribute==0.6.28
mongo==0.2.0
pymongo==2.3
pytz==2012g
wsgiref==0.1.2

Edit2: Entfernt bson-und pymongo, reran pip install pymongo. Komplette Spur jetzt:

Traceback (most recent call last):
18:21:20 web.1  |   File ".../venv/lib/python2.7/site-packages/flask/app.py", line 1701, in __call__
18:21:20 web.1  |     return self.wsgi_app(environ, start_response)
18:21:20 web.1  |   File ".../venv/lib/python2.7/site-packages/flask/app.py", line 1689, in wsgi_app
18:21:20 web.1  |     response = self.make_response(self.handle_exception(e))
18:21:20 web.1  |   File ".../venv/lib/python2.7/site-packages/flask/app.py", line 1687, in wsgi_app
18:21:20 web.1  |     response = self.full_dispatch_request()
18:21:20 web.1  |   File ".../venv/lib/python2.7/site-packages/flask/app.py", line 1361, in full_dispatch_request
18:21:20 web.1  |     response = self.make_response(rv)
18:21:20 web.1  |   File ".../venv/lib/python2.7/site-packages/flask/app.py", line 1450, in make_response
18:21:20 web.1  |     rv = self.response_class.force_type(rv, request.environ)
18:21:20 web.1  |   File ".../venv/lib/python2.7/site-packages/werkzeug/wrappers.py", line 711, in force_type
18:21:20 web.1  |     response = BaseResponse(*_run_wsgi_app(response, environ))
18:21:20 web.1  |   File ".../venv/lib/python2.7/site-packages/werkzeug/test.py", line 818, in run_wsgi_app
18:21:20 web.1  |     app_iter = app(environ, start_response)
18:21:20 web.1  | TypeError: 'list' object is not callable

InformationsquelleAutor der Frage Wesley Tansey | 2012-10-19

Schreibe einen Kommentar