我必须缺少一些东西,但我环顾四周,找不到对此问题的参考。
我有非常基本的代码,如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 任何帮助,将不胜感激。谢谢。
答案 0 :(得分:0)
自从使用虚拟环境以来,您是否尝试过从虚拟环境打开编辑器? 例如,从命令行打开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()
希望这会有所帮助。
答案 1 :(得分:0)
我遇到了这个问题,并通过停用,重新安装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