【问题标题】:Flask-mongoengine: Unable to import MongoEngine From flask-mongoengineFlask-mongoengine:无法从 flask-mongoengine 导入 MongoEngine
【发布时间】:2019-12-11 19:53:36
【问题描述】:

我一定遗漏了一些东西,但我环顾四周,找不到有关此问题的参考。

我有非常基本的代码,如 flask-mongoengine 文档中所示。 测试.py:

from flask import Flask
from flask_mongoengine import MongoEngine

当我跑步时

python test.py ...

from flask_mongoengine import MongoEngine
ImportError: cannot import name 'MongoEngine'

虚拟环境中的模块包含(requirements.txt):

click==6.7
Flask==1.0.2
flask-mongoengine==0.9.5
Flask-WTF==0.14.2
itsdangerous==0.24
Jinja2==2.10
MarkupSafe==1.0
mongoengine==0.15.3
pymongo==3.7.1
six==1.11.0
Werkzeug==0.14.1
WTForms==2.2.1

我的解释器是 Python 3.6.5 任何帮助,将不胜感激。谢谢。

【问题讨论】:

    标签: flask mongoengine flask-mongoengine


    【解决方案1】:

    自从您使用虚拟环境以来,您是否尝试过从虚拟环境中打开编辑器? 例如,从命令行打开 vscode 编辑器是“code”。通过终端进入您的虚拟环境并激活,然后在提示符下键入“代码”。

    terminal:~path/to/virtual-enviroment$ source bin/activate
    (virtual-enviroment)terminal:~path/to/virtual-enviroment$ code
    

    如果这不起作用,我自己还没有使用flask-mongoengine。我担心它的抽象会带来任何问题,而只是将 Mongoengine 与 Flask 一起使用。

    我假设您只是将此库用于连接管理,因此,如果您无法解决 flask-mongoengine 的问题,但仍对使用 mongoengine 感兴趣,这是我的方法。 ~

    我会把它放在某个配置文件中并在适当的地方导入它-

    from flask import Flask
    
    MONGODB_DB = 'DB_NAME'
    MONGODB_HOST = '127.0.0.1' # or whatever your db address
    MONGODB_PORT = 27017  # or whatever your port
    
    app = Flask(__name__) # you can import app from config and it will keep its configurations
    

    然后我会像这样在每个 HTTP 请求函数中连接和断开与数据库的连接-

    from config import MONGO_DB, MONGODB_HOST, MONGODB_PORT
    
    # to connect
    db = connect(MONGODB_DB, host=MONGODB_HOST, port=MONGODB_PORT)
    
    # to close connection before any returns
    db.close()
    

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      我遇到了这个问题,并设法通过停用、重新安装 flask-mongoengine 并重新激活 venv(全部在终端中)来解决它:

      deactivate
      pip install flask-mongoengine 
      
      # Not required but good to check it was properly installed    
      pip freeze
      
      venv\Scripts\activate
      flask run
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-03-27
        • 2019-06-03
        • 2020-11-06
        • 2012-12-09
        • 2016-08-01
        • 2013-11-26
        • 2014-08-16
        • 1970-01-01
        相关资源
        最近更新 更多