Flask-mongoengine:无法从 flask-mongoengine 导入 MongoEngine

Flask-mongoengine: Unable to import MongoEngine From flask-mongoengine

我一定是遗漏了什么,但我环顾四周,找不到关于这个问题的参考资料。

我有非常基本的代码,如 flask-mongoengine 文档中所示。 test.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

我的翻译器是Python3.6.5 任何帮助,将不胜感激。谢谢

自从您使用虚拟环境后,您是否尝试过从虚拟环境中打开您的编辑器? 例如,从命令行打开 vscode 编辑器是 "code"。通过终端转到您的虚拟环境并激活,然后在您的提示符下键入 "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()

希望这对您有所帮助。

我遇到了这个问题并设法通过停用、重新安装 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