我肯定遗漏了什么,但我环顾四周,找不到这个问题的参考资料。
我有非常基本的代码,可以在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我的解释器是Python 3.6.5,如果有任何帮助,我们将不胜感激。谢谢。
发布于 2018-08-01 10:31:06
由于您使用的是虚拟环境,因此您是否尝试从虚拟环境中打开编辑器?例如,从命令行打开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()希望这能有所帮助。
发布于 2019-12-11 19:53:37
我遇到了这个问题,并设法通过停用、重新安装flask-mongoengine和重新激活venv (都在终端中)来修复它:
deactivate
pip install flask-mongoengine
# Not required but good to check it was properly installed
pip freeze
venv\Scripts\activate
flask runhttps://stackoverflow.com/questions/51529408
复制相似问题