flask-mongoengine из mongoengine.document import Document, EmbeddedDocument ImportError: невозможно импортировать имя документа - PullRequest
0 голосов
/ 22 ноября 2018

Я хочу использовать приложение для разработки flask-mongoengine, но при запуске приложения появляется importError

Моя фляга run.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from app import app


if __name__ == '__main__':
    app.run(debug=True)

мое приложение init .py

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from flask import Flask
import flask_mongoengine
from flask_mongoengine import MongoEngine

app = Flask(__name__)

app.config['MONGODB_SETTINGS'] = {
    'db':   'datasync_datax',
    'host': '192.168.100.85',
    'port': 27017
}

db = MongoEngine()
db.init_app(app)

Проблемы при запуске:

Traceback (most recent call last):
  File "/Applications/PyCharm.app/Contents/helpers/pydev/pydevd.py", line 1596, in <module>
    globals = debugger.run(setup['file'], None, None, is_module)
  File "/Applications/PyCharm.app/Contents/helpers/pydev/pydevd.py", line 974, in run
    pydev_imports.execfile(file, globals, locals)  # execute the script
  File "/Users/huan/sources/python-sources/bt-ware-datasync-datax/run.py", line 4, in <module>
    from app import app
  File "/Users/huan/sources/python-sources/bt-ware-datasync-datax/app/__init__.py", line 5, in <module>
    import flask_mongoengine
  File "/Library/Python/2.7/site-packages/flask_mongoengine/__init__.py", line 6, in <module>
    import mongoengine
  File "/Library/Python/2.7/site-packages/mongoengine/__init__.py", line 3, in <module>
    from mongoengine import document
  File "/Library/Python/2.7/site-packages/mongoengine/document.py", line 44, in <module>
    class EmbeddedDocument(six.with_metaclass(DocumentMetaclass, BaseDocument)):
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six.py", line 566, in with_metaclass
    return meta("NewBase", bases, {})
  File "/Library/Python/2.7/site-packages/mongoengine/base/metaclasses.py", line 151, in __new__
    CachedReferenceField) = mcs._import_classes()
  File "/Library/Python/2.7/site-packages/mongoengine/base/metaclasses.py", line 243, in _import_classes
    Document = _import_class('Document')
  File "/Library/Python/2.7/site-packages/mongoengine/common.py", line 27, in _import_class
    from mongoengine.fields import __all__ as fields
  File "/Library/Python/2.7/site-packages/mongoengine/fields.py", line 34, in <module>
    from mongoengine.document import Document, EmbeddedDocument
ImportError: cannot import name Document

моя среда разработки в python2.7

Я не знаю, что не так.

pymongo 、 mongoengine already flask-mongoengine ужеустановлен

1 Ответ

0 голосов
/ 23 ноября 2018

Проблема была решена.

Я обновил свою библиотеку flask-mongoengine!

sudo pip install --upgrade flask-mongoengine
...